在C++中是否可以创建变量,该变量每次使用后将被扩展为不同的值?

例如,我想要以下

#define mytype [smth here]
void foo(mytype a,mytype b,mytype c)

将扩展为
void foo(mytype1 a,mytype2 b,mytype3 c)

要么
void foo(mytype1 a,mytype11 b,mytype111 c)

最佳答案

这是使用Boost.Preprocessor实现功能参数事物的示例:

#include <boost/preprocessor/repetition/enum_binary_params.hpp>

void foo(BOOST_PP_ENUM_BINARY_PARAMS(3, mytype, p));

那将扩大到
void foo(mytype0 p0, mytype1 p1, mytype2 p2);

10-05 21:48