我正在尝试创建一个宏来替换函数定义。这个宏应该在某个数组中注册函数的名称,以便其他宏可以对数组的元素做一些事情。
我想这样做以获得可以在控制台中使用的功能列表,而无需在添加新功能时编辑列表(它实际上是多个列表)。
在阅读了一下之后,我看了一下 boost 预处理器。不幸的是,似乎没有办法“保存”新数组。我想做的是这样的:
#define SOME_ARRAY (0, ())
#define CONSOLE_COMMAND(a) \
#redefine SOME_ARRAY BOOST_PP_ARRAY_PUSH_BACK(SOME_ARRAY, #a) \
void a(some_arguments)
不幸的是,据我所知,redefine 不存在,#define 不能在宏中使用(如果我错了,请纠正我)。
我查看了 boost 的预编译器的 SLOT,但我认为一旦设置,我也无法更改其中的变量。
除了编写我自己的预处理器之外,还有什么方法可以做到这一点?不是,学习如何写一个好的开始是什么?(将 MinGW 与 Code::Blocks 一起使用)。