【发布时间】:2017-08-04 22:45:32
【问题描述】:
拥有一个可变参数模板很简单,我可以对其进行专门化,所以它只接受一个TStringConstant,它是一些chars 中的一个string_constant:
template <typename TStringConstant, typename TValue>
class entry;
template <char... key, typename TValue>
class entry<string_constant<key...>, TValue>{}
如果我想创建一个模板类,它可以接受不同chars 的可变数字TStringConstants,有没有办法做到这一点?也许带有模板模板参数?
所以以下所有内容都是有效的:
entry_list<string_constant<'c','b','a'>, string_constant<'d','e','f','g'>>();
entry_list<string_constant<'c','b','a'>, string_constant<'d','e','f','g'>, string_constant<'d','e','z','z'>>();
entry_list<string_constant<'a','b','c'>>();
如果它会拒绝 entry_list<something_else<'c','b','a'>> 就像 entry<something_else<'c','b','a'>, bool> 将无法编译一样。
【问题讨论】:
标签: c++ c++11 templates variadic-templates template-specialization