C ++ 11中的元组参数的特殊化函数

时间:2015-12-06 14:42:53

标签: templates c++11

我想专门为任何元组参数设置一个函数。 它应该是这样的:

template <class T>
void f(T t) { ...code for default.. }

template <>
void f<std::tuple<...>> (std::tuple<...> t) } { ... code for tuples... };

它似乎与模板模板参数相关,但我找不到任何关于我的问题的示例。

1 个答案:

答案 0 :(得分:2)

你不能部分专门化一个功能;在可用的解决方案中,最好的是引入过载:

template <typename T>
void f(T t) {}

template <typename... Ts>
void f(std::tuple<Ts...> t) {}

DEMO