Qt 的 moc/C++11 是不是与 C# 的 nameof() 运算符等效?

Posted

技术标签:

【中文标题】Qt 的 moc/C++11 是不是与 C# 的 nameof() 运算符等效?【英文标题】: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 差不多,根据评论,目前任何解决方案都必须有点老套。 【参考方案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 中是不可能的,因为它只有在语言/编译器支持下才有可能。它也与反射无关(在运行时),因为它在编译时为您提供了标识符的名称。

【讨论】:

以上是关于Qt 的 moc/C++11 是不是与 C# 的 nameof() 运算符等效?的主要内容,如果未能解决你的问题,请参考以下文章

window下C#(winform)调用带界面的Qt库文件(DLL)

window下C#(winform)调用带界面的Qt库文件(DLL)

window下C#(winform)调用带界面的Qt库文件(DLL)

C# 应用程序是不是可以与内核驱动程序通信?

c# 如何让控件随着分辨率变化

对界面编程来说c++的mfc,qt和c#的winform,wpf哪个应用多?学哪个好?