【问题标题】:Does Qt's moc/C++11 have an equivalent of C#'s nameof() operator?Qt 的 moc/C++11 是否与 C# 的 nameof() 运算符等效?
【发布时间】:2016-07-25 00:24:33
【问题描述】:

Qt 的 moc/C++11 是否有等效于 C# 的 nameof() 运算符? Qt 有 moc 系统,它是/做了某种反射,但我不知道如何获得像 C# 的 nameof() 这样的变量名。这可能吗?

【问题讨论】:

  • 如果它适合您,您可以使用宏。该语言中的专用反射支持还有很长的路要走。
  • 有点老套,你的意思是#define NAMEOF(s) #s
  • 差不多,根据评论,目前任何解决方案都必须有点老套。

标签: c# c++ qt c++11 nameof


【解决方案1】:

如果你的编译器支持 C++17,那么这个库应该做你想做的一切: https://github.com/Neargye/nameof

https://www.reddit.com/r/cpp/comments/b3spr5/nameof_operator_for_modern_c_simple_name_of_a/查看库作者的更多示例

【讨论】:

    【解决方案2】:

    这在 C++ 11 中是不可能的,因为它只有在语言/编译器支持下才有可能。它也与反射无关(在运行时),因为它在编译时为您提供了标识符的名称。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-30
      • 2016-12-20
      • 1970-01-01
      • 1970-01-01
      • 2010-12-25
      • 1970-01-01
      • 2011-06-26
      相关资源
      最近更新 更多