在GCC,我可以使用下面的代碼在C++中ARG類型:如何確定
#define is_t(smth, type) ({int is_t_result; if (__builtin_types_compatible_p(__typeof__(smth), type)) {is_t_result = 1;}; is_t_result;})
但是當我在googletest運行它(C++),它提升
error: expected primary-expression before ‘__typeof__’
是有替代品在cpp中實現is_t
?
我只想確定c類型(int,float double,char *)並讓googletest傳遞,有沒有簡單的方法?我不寫C++,只是用googletest – ichvenkait
我不確定你的意思是說你「不寫C++,只是用Google測試」...... Google測試是一個C++的單元測試框架......我不知道不理解如何在不理解正在測試的代碼的情況下編寫測試。你最好的辦法是將「is_t(Type,x)」定義爲「typeid(T)== typeid(x)」,但是這種類型做了精確的比較......它沒有考慮多態關係。這就是爲什麼這樣的宏很混亂。 –