我編譯以下與鐺++代碼 - 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