我编译以下与铛++代码 - 600.0.51:锵可变参数模板专业化错误:非可推论模板参数
template<typename ... Args> struct seq{};
template<typename Seq, size_t c = 1> struct pop_back;
template<typename ... Args> struct pop_back <seq<Args...>, 0>{
typedef seq<Args...> type;
};
template<typename ... Args, typename T, size_t c> struct pop_back <seq<Args..., T>, c>{
typedef typename pop_back<seq<Args...>, c - 1>::type type;
};
和我收到一个错误:类模板部分特例包含模板参数 不能推导出;这部分专业化将永远不会使用[ - 错误]
似乎我专门错误的方式的可变参数模板,但gcc 4.8.2和vc 2013可以成功地编译它。如果我只是像上面那样定义pop_back,那么就会传递gcc和vc。如果我实例化pop_back,所有这些都失败了。
我的代码是不是标准的?如何为此编写解决方法?
甚难,因为我们不知道什么'seq'是。 – WhozCraig 2014-09-28 03:48:38
我错过了seq的定义。添加它。 – wingfire 2014-09-28 09:50:04