Używając parametrów szablonu szablonu można przekazać do klasy klasę szablonową bez określania typów na swoich parametrach. Zastanawiam się, czy istnieje sposób, aby przejść do szablonu szablonu szablonu szablonowej sygnatury funkcji, aby móc wyspecyfikować, który wariant funkcji ma być uważany za przyszły.Czy istnieje sposób przekazywania szablonowego podpisu funkcji jako szablonu szablonu parametr
Żeby było jasne - wiem, że nie mogę tego zrobić:
template <class T>
void foo() { /*...*/ }
template <template <class...> class FooType>
struct Foo { /*...*/ };
int main() {
Foo<decltype(foo)> f;
}
Ale jakoś Chciałbym, aby móc przejść na matrycy podpis funkcji do Foo
. Czy to możliwe?
Tak, 'using' załatwia sprawę tutaj. To podejście wydaje się być nawet czystsze niż szablonowe "używanie" ... –
Czy mogę zapytać, za co go używasz? Po prostu ciekawość ... Nie widzę żadnego zastosowania dla 'T', gdzie nie mogę użyć po prostu' S'. – skypjack
Oczywiście powstało pytanie z innego archiwum: http://stackoverflow.com/questions/36655835/better-pattern-for-partial-specialization-disambiguation-precedence-chain/36657353#36657353 Chciałem zaproponować ogólny tag to byłby w stanie zaakceptować zarówno szablon szablonu, jak i funkcję z danym podpisem ... Wtedy zdałem sobie sprawę, że to nie jest trywialne zadanie ... :) –