在 C++ 中,如何找到变量的类型?
原文由 David G 发布,翻译遵循 CC BY-SA 4.0 许可协议
带有 abi::__cxa_demangle() 的 typeid 运算符(仅限 GCC / Clang)
#include <iostream>
#include <typeinfo>
#if defined __GNUC__
#include <cxxabi.h> // GCC / Clang only
#endif
int main() {
long long w;
std::cout << typeid(w).name() << std::endl; // x
#if defined __GNUC__ // GCC / Clang only
char * name = abi::__cxa_demangle(typeid(w).name(), 0, 0, 0);
std::cout << name << std::endl; // long long
free(name);
#endif
}
原文由 Kuznetsov-M 发布,翻译遵循 CC BY-SA 4.0 许可协议
3 回答1.3k 阅读✓ 已解决
1 回答1k 阅读✓ 已解决
4 回答820 阅读
1 回答893 阅读
1 回答923 阅读
1 回答694 阅读
1 回答798 阅读
对于静态断言,C++11 引入了
decltype
这在某些场景下非常有用。