MordiJC Temat założony przez niniejszego użytkownika |
Error: Default argument for template parameter for class enclosing 'T Config::get(std::string, std::string, Ft (*)(Rt))' » 2013-05-25 20:21:24 Witam. Może mi ktoś powiedzieć, dlaczego wywala mi taki błąd Error: Default argument for template parameter for class enclosing 'T Config::get(std::string, std::string, Ft (*function)(Rt))' w tym oto kodzie?: template < class T, class Ft = int, class Rt = string > T Config::get( string section, string variable, Ft( * function )( Rt arg ) );
Ta funkcja ma pobierać od usera sekcję i zmienną (config) i wywoływać funkcję podaną w 3 argumencie. Przykład: Config c( "file.conf" ); string val = c.< string, int, char > get( "Sekcja", "Zmienna", & print );
|
|
pekfos |
» 2013-05-25 20:24:02 c.< string, int, char > get
Co to? |
|
DejaVu |
» 2013-05-25 20:24:13 Deklarację funkcji możesz zrobić tylko dla funkcji. Deklarację metody musisz zrobić wewnątrz definicji klasy - z przytoczonego kodu wynika jednak, że robisz deklarację metody poza klasą (co jest błędne). |
|
MordiJC Temat założony przez niniejszego użytkownika |
» 2013-05-25 20:55:05 Wielkie dzięki. Nie wiedziałem, że nie mogę tak pisać kodu. Ale cóż, jestem samoukiem :D P.S. Wiecie, jak zrobić szablon metody bez tworzenia szablonu klasy? |
|
DejaVu |
» 2013-05-25 21:26:18 class Klasa { public: template < class X > void metoda( const X & wartosc ); }; |
|
Monika90 |
» 2013-05-25 21:32:42 Szablon funkcji składowej: class X { public: template < class T, class U > void f( T, U ) { } };
Pamiętaj, że domyślne parametry szablonów funkcji są dostepne dopero w C++11. A wywołuje się to tak: X x; x.f < char, int >( 90, 1 );
A najlepiej tak: |
|
MordiJC Temat założony przez niniejszego użytkownika |
» 2013-05-25 21:45:00 jakim sposobem się do tego dostać? bo mój sposób podobno jest zły. Np. Jeżeli bym chciał uzyskać dostęp do mojej w/w metody? (dopiero zaczynam zababę zszablonami i nie łapię do końca o co biega)
Edit
Nie ważne, niezaładowało mi części powyższego posta.
Wielkie dzięki za wszystko. Resztę problemów będę rozwiązywał sam. |
|
« 1 » |