我想获取名称空间元素名称和值...我该怎么做? 我想列出名称和值(已编辑)
例如
namespace testns{
int stuff=4;
};
int index=0;
get_element_name(testns,index);
get_element_value(testns,int,index);
答案 0 :(得分:4)
命名空间正如它在框中所说的那样,命名空间。您可以在许多模块中拥有相同的命名空间,您如何知道如何索引它们?什么是唯一正确的顺序?命名空间只是对元素进行分类,而不是以某种方式神奇地允许它们被编入索引。
C ++没有任何反射功能(我认为这就是你要找的东西)。你必须手动说出你想要的东西。
答案 1 :(得分:1)
您尝试做的是 reflection,,而C ++没有任何语言级内置方式为您执行此操作。只有少数事情可以做,例如在#
中使用#define
运算符,但是你使用#define
s,我打赌这不是你想要的
您可以在功能上获得的最接近的事情是编写另一个程序,该程序读取您的源代码,挖掘命名空间信息,然后将其写入您可以#include
其他位置的头文件。 GCC-XML extension在这方面可能会有所帮助,因为它使用G ++前端来解析语言,然后将语法树输出为XML,您可以使用任意数量的XML DOM解析器读取它。
答案 2 :(得分:0)
要访问变量内容,请执行以下操作:
//Setting
testns::stuff = 10;
//Getting
int stuff_value = testsn::stuff;
命名空间的目的是消除使用类似命名法的代码之间的歧义。