小编Nar*_*yan的帖子

使用 C++ 模板元编程表示一组类型

如何写一个模板 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

1
推荐指数
1
解决办法
1367
查看次数