c++ - Compilation Error on Recursive Variadic Template Function -


i've prepared simple variadic template test in code::blocks, i'm getting error:

no matching function call 'outputsizes()'

here's source code:

#include <iostream> #include <typeinfo>  using namespace std;  template <typename firstdatatype, typename... datatypelist> void outputsizes() {     std::cout << typeid(firstdatatype).name() << ": " << sizeof(firstdatatype) << std::endl;     outputsizes<datatypelist...>(); }  int main() {     outputsizes<char, int, long int>();     return 0; } 

i'm using gnu gcc -std=c++0x. using -std=gnu++0x makes no difference.

here's how disambiguate base case:

#include <iostream> #include <typeinfo>  template <typename firstdatatype> void outputsizes() {     std::cout << typeid(firstdatatype).name() << ": " << sizeof(firstdatatype) << std::endl; }  template <typename firstdatatype, typename seconddatatype, typename... datatypelist> void outputsizes() {     outputsizes<firstdatatype>()     outputsizes<seconddatatype, datatypelist...>(); }  int main() {     outputsizes<char, int, long int>(); } 

Comments

Popular posts from this blog

apache - Add omitted ? to URLs -

redirect - bbPress Forum - rewrite to wwww.mysite prohibits login -

php - How can I stop spam on my custom forum/blog? -