如何写一个模板 meta_set<class...Args>,使得 meta_set::type` 对于 Ts 的所有排列都是相同的?
换句话说,meta_set<>::type无论顺序如何,只要参数列表相同,我们就希望具有相同的值,也就是说,当将其视为一个集合(或多集合,如果更容易的话)。
例如,
std::is_same< meta_set<int,double,string>::type, meta_set<double,string,int>::type >::value == true
std::is_same< meta_set<int,double,string>::type, meta_set<double,string,bool>::type >::value == false
Run Code Online (Sandbox Code Playgroud)
当您希望每个模板参数集有一个模板的单个实例化时,这可能会派上用场。
注意:这不是家庭作业,而是我在工作中处理模板繁重代码时感到好奇的事情。我不是元编程专家,所以我想也许人们可以分享他们的知识。
c++ template-meta-programming variadic-templates c++11 c++14