Asumamos que quiere hacer esto en C++ 0x:funciones variadic (sin argumentos!)
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...);
}
Niza, pero se siente innecesario pasar alrededor de los argumentos. Por desgracia, esto no funciona:
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 se queja de error: ninguna función coincidente para la llamada a 'count_int()' en la línea siguiente a la última. ¿Por qué y cómo se puede arreglar esto? Gracias.
Gracias! Eso funciona bien – Hans