2011-08-11 17 views
9

Wiem, że C++ ma funkcję o nazwie "parametry szablonu szablonu", w której można przekazać szablon klasy jako parametr szablonu. Na przykład:Czy istnieje coś takiego jak parametr szablonu szablonu funkcji?

template <typename T> 
class vector { ... }; 

template <template <typename> class container> // this is a template template parameter 
class foo { ... }; 

... 

foo<vector> f; // pass the vector template itself as template parameter 

Czy istnieje analogiczna funkcja dla szablonów funkcyjnych? To znaczy. czy istnieje sposób przekazania szablonu funkcji (na przykład std::make_pair) jako parametru szablonu do klasy?

+0

Co byłoby magiczne składni byłoby chcesz użyć? – MSN

+0

@MSN: Chciałem napisać funkcję 'template void foo (F)' która może być nazwana jako 'foo (bar)' gdzie 'bar' jest szablonem funkcji (np.' Template void bar (T) '). 'foo' może wtedy wywołać' F' z argumentami różnych typów. Zostawię to twojej wyobraźni co do tego, co może się wydarzyć w '???' :) To może być wykonane, jeśli 'bar' jest polimorficznym obiektem funkcji (tj. Klasą bez szablonu z operatorem szablonowym ()), w którym to przypadku parametr szablonu 'foo' byłby zwykłym parametrem typu. [kontynuacja w następnym komentarzu] – HighCommander4

+0

[kontynuacja z wcześniejszej wypowiedzi] Chciałbym jednak użyć istniejącego szablonu funkcji 'bar' bez dostosowania go do funkcji polimorficznej. – HighCommander4

Odpowiedz

12

nr

+0

Krótka i słodka –

+1

To źle, przydałaby mi się przydatna ... – HighCommander4

+0

@ HighCommander4: możesz używać szablonów klas i wywoływać statyczne funkcje członkowskie: –

Powiązane problemy