我想知道我们是否可以有这样的课程(伪代码):
template <class Arg1T, ... class ArgNT>
class my_class
{
public:
my_class(Arg1T Arg1, std::string Arg1_name ... ArgNT ArgN, std::string ArgN_name){}
};
如果我们可以在编译时使用定义为每个提供的参数类型自动生成一个函数,例如得到类似(伪代码)的东西:
template <class Arg1T, ... class ArgNT>
class my_class
{
public:
my_class(Arg1T Arg1, std::string Arg1_name ... ArgNT ArgN, std::string ArgN_name){}
// for each Arg we want to create a function like
ArgMT my_class_function(std::string name)
{
if(name == ArgM_name)
return ArgM;
}
};
在现代 C++ 中是否可能有这样/或有点类似的事情以及如何创建它?
我想说的是:我想为从某个函数模板提供给构造函数的每个类类型生成函数。并想知道如何做这样的事情?这里展示了如何重复 ,但如何重复提供给类参数和类型?
我的意思是,如果我们知道类模板N
参数N
的数量N
(N
变量)(我们将在构造函数中调用)。这里的主要问题是 - 如何解决两次或更多相同类型的问题,如何从 boost.preprocessor 中获取 args 数量,如何过滤相同类型?