我们可以使用“this”指针获取对象名称

时间:2017-12-02 09:15:44

标签: c++ gcc reflection introspection libclang

我想以编程方式在运行时检索C ++类实例的标识符。我知道C ++还不支持反射,但有没有替代解决方案呢? 例如,给出以下示例:

class Foo {
  Foo() {
   auto name = reflect::getIdentifierName(this);
   std::cout << name << std::endl;
  }
};

void main() {
   Foo my_obj;
}

执行此程序应打印出“my_obj”。 我正在寻找可用于实现此基本反射功能的任何实用程序库。

我特别想知道是否可以使用libclang来提取这些信息 - 如果是这样的话,任何关于如何构建反射函数的提示都可以用来提取这些信息。

1 个答案:

答案 0 :(得分:1)

是的,但这是实施定义的。自行承担风险。

如果没有更多的背景,Yunnosch的建议听起来更合理。

x <- seq(from=0.2, to=0.02 , by= -0.02)
y <- c(seq(from=0.02, to=0.1 , by=0.02), seq(from=0.08, to=0.00 , by= -0.02))