Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/137.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
如何在运行时检查typeid是否为指针? 在C++中,是否可以确定 Type信息> /Cord>对象在运行时描述指针?比如说, char a1; char *a2; const std::type_info &ti1 = typeid(a1); const std::type_info &ti2 = typeid(a2); std::cout << is_pointer(ti1) << std::endl; std::cout << is_pointer(ti2) << std::endl; chara1; char*a2; const std::type_info&ti1=typeid(a1); const std::type_info&ti2=typeid(a2); std::cout_C++_Pointers_Runtime_Typeid_Typeinfo - Fatal编程技术网

如何在运行时检查typeid是否为指针? 在C++中,是否可以确定 Type信息> /Cord>对象在运行时描述指针?比如说, char a1; char *a2; const std::type_info &ti1 = typeid(a1); const std::type_info &ti2 = typeid(a2); std::cout << is_pointer(ti1) << std::endl; std::cout << is_pointer(ti2) << std::endl; chara1; char*a2; const std::type_info&ti1=typeid(a1); const std::type_info&ti2=typeid(a2); std::cout

如何在运行时检查typeid是否为指针? 在C++中,是否可以确定 Type信息> /Cord>对象在运行时描述指针?比如说, char a1; char *a2; const std::type_info &ti1 = typeid(a1); const std::type_info &ti2 = typeid(a2); std::cout << is_pointer(ti1) << std::endl; std::cout << is_pointer(ti2) << std::endl; chara1; char*a2; const std::type_info&ti1=typeid(a1); const std::type_info&ti2=typeid(a2); std::cout,c++,pointers,runtime,typeid,typeinfo,C++,Pointers,Runtime,Typeid,Typeinfo,typeid()为您提供一个对象。就这些 正如您在本文档中所看到的,type_info并没有告诉您很多。几乎所有有用的东西都是“实现定义的” 而且,没有任何东西权威性地告诉您类型是否是某种指针 “实现定义”意味着C++编译器定义了这意味着什么。很有可能,如果您查阅编译器的文档,您会发现一些关于name()返回内容的额外解释,并且很有可能通过name()轻松确定类型是否为指针。如何以及以何种方式完全取决于您的编译器,当然,它将是完全不可移植的。ti1==typeid(char*)?它必须是通用的,

typeid()
为您提供一个对象。就这些

正如您在本文档中所看到的,
type_info
并没有告诉您很多。几乎所有有用的东西都是“实现定义的”

而且,没有任何东西权威性地告诉您类型是否是某种指针


“实现定义”意味着C++编译器定义了这意味着什么。很有可能,如果您查阅编译器的文档,您会发现一些关于

name()
返回内容的额外解释,并且很有可能通过
name()
轻松确定类型是否为指针。如何以及以何种方式完全取决于您的编译器,当然,它将是完全不可移植的。

ti1==typeid(char*)
?它必须是通用的,而不是特定于
char
。在所有实际场景中,这个决定(几乎)总是在编译时做出的,我非常想知道这个用例。这看起来像一个例子。为什么您只能访问对象的
typeid