如何获取变量的类型?

新手上路,请多包涵

在 C++ 中,如何找到变量的类型?

原文由 David G 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 524
2 个回答

对于静态断言,C++11 引入了 decltype 这在某些场景下非常有用。

原文由 user2074102 发布,翻译遵循 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 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题