讓我們假設你想這樣做C++ 0x中:可變參數函數(不帶參數!)
size_t count_int() { return 0; }
template<typename T, typename... Tn>
size_t count_int(T a0, Tn... an) {
size_t n = is_integer<T>::value ? 1 : 0;
return n + count_int(an...);
}
不錯,但感覺沒有必要繞過參數。不幸的是,這並不工作:在未來到最後一行的調用沒有匹配的函數「count_int()」:
size_t count_int() { return 0; }
template<typename T, typename... Tn>
size_t count_int() {
size_t n = is_integer<T>::value ? 1 : 0;
return n + count_int<Tn...>();
}
GCC抱怨錯誤。爲什麼以及如何解決這個問題? 謝謝。
謝謝!這工作正常。 – Hans 2011-02-23 13:49:58