Powiedz, że mam klasę szablonu variadic. Jak utworzyć funkcję taką, że jej argumenty są typu ustawionego, na przykład int
, z liczbą argumentów równą liczbie typów szablonów?Dla każdego szablonu wpisz argument typu zbioru
template <typename... Types>
class Test
{
public:
void Func(???); // I don't know how to declare such a function
}
Test<string, bool, long> myTest; // Three types
myTest.Func(905, 36, 123315); // Three arguments, but always of type int.
Ostatecznie celem tej funkcji jest zwrócenie krotki podanych int. Dla uproszczenia pokazałem, że funkcja jest nieważna w przykładowym kodzie.
[W] (http://stackoverflow.com/questions/3703658/specifying-one-type-for-all-arguments-passed-to-variadic-function-or-variadic -te) z dodatkowym sprawdzeniem 'sizeof ...'? – LogicStuff
Podoba Ci się to? http://ideone.com/PASclP –
Nie potrzebujesz nawet "Typów", ponieważ rozmiar pakietu parametrów może zostać wywnioskowany przez połączenie: http://ideone.com/tPe6Tj –