Używam pakietów parametrów variadic do projektowania klas opartych na regułach.Wiele pakiet parametrów Variadic dla klasy szablonów
template <APITypes APIType, class... Policies>
class IShader : public Policies... {
};
Zasady są określane, gdy są wywoływane lub z wartościami domyślnymi, jeśli żadne nie zostały określone. Problem pojawia się, gdy trzeba dodać kolejny pakiet o zmiennej liczbie argumentów parametru:
template <AttributeType... Attributes, APITypes APIType, class... Policies>
class IShader : public Policies... {
};
Powoduje to błąd „parametr szablonu opakowanie musi być ostatnim parametrem szablonu”. Planuję użyć pakietu atrybutów, aby zmienić zachowanie co najmniej jednej z zasad. Ale nie mogę się dowiedzieć, jak uzyskać dwa pakiety parametrów variadic w jednej klasie szablonu.
Nie możesz. Musisz ponownie przemyśleć swój projekt szablonu/klasy. –
Nawet z pewnym niedostrzeganiem? Powiedz o jakimś opakowaniu listy atrybutów. Lub szablony szablonów? – James
Zawsze możesz wziąć pod uwagę coś takiego jak 'IShader, APIType, Zasady >' –
chris