-3

我想获取命名空间元素的名称和值......我该怎么做?我想列出名称和值(已编辑)

例子

namespace testns{
  int stuff=4;
};

int index=0;

get_element_name(testns,index);
get_element_value(testns,int,index);
4

3 回答 3

4

命名空间就是它在盒子上所说的,命名空间。你可以在许多模块中拥有相同的命名空间,你怎么知道如何索引它们?唯一正确的顺序是什么?命名空间只是为了对元素进行分类,而不是神奇地让它们被索引。

C++ 没有任何反射工具(我认为这就是您要寻找的东西)。您必须手动说明您想要的内容。

于 2013-08-12T03:12:24.413 回答
1

您正在尝试做的事情称为反射,而 C++ 没有任何语言级别的内置方式可以为您执行此操作。只能做几件事,例如#在 a 中使用运算符#define,但随后您使用的是#defines,我敢打赌这不是您想要的。

您可以在功能上获得的最接近的事情是编写另一个程序,该程序读取您的源代码,挖掘名称空间信息,然后将其写入您可以在#include其他地方的头文件中。GCC-XML 扩展在这方面可能会有所帮助,因为它使用 G++ 前端来解析语言,然后将语法树输出为 XML,您可以使用任意数量的 XML DOM 解析器来读取它。

于 2013-08-12T03:28:29.527 回答
0

为了访问变量的东西,你这样做:

//Setting
testns::stuff = 10;

//Getting
int stuff_value = testsn::stuff;

命名空间的目的是消除使用相似命名法的代码之间的歧义。

于 2013-08-12T03:12:38.707 回答