if(typeid(int) == typeid(const int))
cout << "Same types"<< endl;
计划输出:
我错过了什么吗? 这些不是同一类型lol。相同类型
答案 0 :(得分:14)
它们的类型不同,但typeid
运算符剥离了const
和volatile
。
从第5.2.8节[expr.typeid]
:
glvalue表达式的顶级 cv-qualifiers 或作为
typeid
的操作数的 type-id 始终被忽略。
答案 1 :(得分:3)
你可能想要这个:
#include <type_traits>
if (std::is_same<int, const int>::value)
std::cout << "same types\n";
else
std::cout << "different types\n";