13
if(typeid(int) == typeid(const int))
cout << "Same types"<< endl;
程序輸出的typeid爲什麼回報:是int和const int的是同一類型的
同種
是我失去了一些東西? 這些不是相同的類型大聲笑。
if(typeid(int) == typeid(const int))
cout << "Same types"<< endl;
程序輸出的typeid爲什麼回報:是int和const int的是同一類型的
同種
是我失去了一些東西? 這些不是相同的類型大聲笑。
它們不是相同的類型,但是typeid
操作條const
和volatile
。
從節5.2.8 [expr.typeid]
:
頂層cv修飾符的glvalue表達的或型-ID那就是
typeid
操作數總是被忽略。
你可能想要這個:
#include <type_traits>
if (std::is_same<int, const int>::value)
std::cout << "same types\n";
else
std::cout << "different types\n";