当我们使用 typeid 即 typeid(variable).name() 它是否给出字符串作为输出,因为如果它给出它可能有助于与字符串进行比较。
最佳答案
根据标准,它是一个实现定义的空终止const char*
:
18.7.1 Class type_info
....
const char* name() const noexcept;
Returns: An implementation-defined
NTBS
.Remarks: The message may be a null-terminated multibyte string (17.5.2.1.4.2), suitable for conversion and display as a
wstring
(21.3, 22.4.1.4)
由于内容是实现定义的,因此无法以可靠的方式与其他字符串进行比较,除非我们将自己限制在特定的实现上。
关于C++ typeid 是否返回字符串类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34030309/