【发布时间】:2015-06-03 17:29:33
【问题描述】:
我有一个模板类方法
template<class T>
T pop<T>();
现在我想做一个模板特化如下,
template<class T>
std::vector<T> pop<T>();
我可以做以下没问题,
template<>
std::vector<int> classname::pop<std::vector<int>>();
但我仍然需要将类型保留为模板参数。我该如何做到这一点?
【问题讨论】:
-
使用标签调度或sfinae
-
只需在 pop 之后删除
就可以了。虽然没有测试;) -
你有不同返回类型的
two pop<T>(),不好。 -
感谢 Piotr,您的解决方案(标签调度)效果很好。我用从您那里得到的解决方案更新了原始问题。