Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/157.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何检查C+中的确切类型信息(带有cv ref指针特征)+;?_C++_Standards_Typetraits_Abi_Typeid - Fatal编程技术网

C++ 如何检查C+中的确切类型信息(带有cv ref指针特征)+;?

C++ 如何检查C+中的确切类型信息(带有cv ref指针特征)+;?,c++,standards,typetraits,abi,typeid,C++,Standards,Typetraits,Abi,Typeid,然而,实际产出是: int int& int&& const int const int& const int&& clang和vc++都采用相同的方法 < > >强>是否有一种可靠的方法来检查C++中的确切类型名称(具有CV REF指针特性)?> P>注意,当您传递引用类型时,结果 STD::Type OnngIs对象表示引用的类型。和cv限定符将被忽略 1) 指表示类型的std::type_info对象。如果type是引用类型,则结果引用表示

然而,实际产出是:

int
int&
int&&
const int
const int&
const int&&
clang和vc++都采用相同的方法


< > >强>是否有一种可靠的方法来检查C++中的确切类型名称(具有CV REF指针特性)?

> P>注意,当您传递引用类型时,结果<代码> STD::Type OnngIs<代码>对象表示引用的类型。和cv限定符将被忽略

1) 指表示类型的
std::type_info
对象。如果
type
是引用类型,则结果引用表示引用类型的
std::type_info
对象

在所有情况下,typeid都会忽略cv限定符(即,
typeid(const T)==typeid(T)

请注意,返回的是实现定义的

您可以应用(Scott Meyers)第4项中的技巧:了解如何查看派生类型,以便在编译时获取类型名。e、 g

int
int
int
int
int
int
模板
结构TD;
然后用它作为

template <typename>
struct TD;
TD;
您将收到一些关于类型名称的消息,如

错误:未定义模板“TD”的隐式实例化

不是以可移植的方式。也可以接受任何实现定义的方式。的可能副本的可能副本您还可以定义模板并打印其typeid名称。
template <typename>
struct TD;
TD<int> td;
error: implicit instantiation of undefined template 'TD<int>'