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";