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