[C++] Bardziej zaawansowana specjalizacja wzorców klas
Ostatnio zmodyfikowano 2016-05-08 11:47
TheReclif Temat założony przez niniejszego użytkownika |
[C++] Bardziej zaawansowana specjalizacja wzorców klas » 2016-05-08 00:44:55 Witam! Mam pytanie: czy mogę stworzyć template-a klasy, który dla danego typu/klasy T stworzy jedną zmienną typu T, a potem poprzez specjalizację wzorca dla konkretnego typu (void) spowodować, aby nie była tworzona ta zmienna typu T? np.: template < class T = void > class Example { private: T args; public: void foo( void ); T getArgs( void ); };
template <> class Example < void > { private: public: void foo( void ); };
Chodzi mniej więcej o taki efekt: jeżeli klasa jako T przyjmuje cokolwiek innego niż void, to niech będzie tam składowa args o typie T, podanym przez użytkownika wzorca; jeżeli klasa jako T przyjmuje void, to niech tej składowej tam nie będzie, a niektóre metody usunięte lub zmodyfikowane; Czy spotkał się ktoś kiedyś z podobnym problemem/dylematem? Proszę o odpowiedź i z góry za nią dziękuję. |
|
pekfos |
» 2016-05-08 02:36:35 A co jest nie tak z metodą z przykładu? |
|
TheReclif Temat założony przez niniejszego użytkownika |
» 2016-05-08 11:47:12 Pomyliłem się, z nią jest wszystko dobrze, tylko w kodzie, w którym miałem to zastosować zrobiłem to nie po kolei i myślałem, że to wina złej metody. Sory za problem, temat zamykam. |
|
« 1 » |