variadic templates - doppelte Parameter Packs
-
Wie kann ich doppelte Parameter Packs für ein Klassen-Template spezialisieren?
namespace detail{ template<typename, typename> struct double_sequence; template<int... I, int... Y> struct double_sequence<sequence<I...>, sequence<Y...>> {}; } template<int... I> struct double_sequence : detail::double_sequence<I...> {};
-
?
Ein primäres Klassentemplate kann nur ein Parameterpack haben.
-
camper schrieb:
?
Ein primäres Klassentemplate kann nur ein Parameterpack haben.Ich brauch zwei Parameter Packs. Einen, den man Anfangs übergibt und einen anderen, der Anfangs 0 Parameter hat und durch Vererbung der Klasse wächst.
Also nehme ein Integer aus Pack 1, damit rumhantieren, stopfe es in Pack 2.
-
vnoob schrieb:
camper schrieb:
?
Ein primäres Klassentemplate kann nur ein Parameterpack haben.Ich brauch zwei Parameter Packs. Einen, den man Anfangs übergibt und einen anderen, der Anfangs 0 Parameter hat und durch Vererbung der Klasse wächst.
Also nehme ein Integer aus Pack 1, damit rumhantieren, stopfe es in Pack 2.
Dein Code macht es vor. Wobei deine Beschreibung wohl eher auf
template<int... I> struct double_sequence : detail::double_sequence<sequence<I...>,sequence<>> {};
hinausläuft.
-
Ok, damit probier ichs mal aus.
Kennst du irgendwelche guten Bücher/Seiten wo man solches Rumgespiele lernen kann, oder bist du einfach nur gut?
-
Ja, es hat geklappt.
https://www.amazon.de/Advanced-C-Metaprogramming-Davide-Gennaro/dp/1460966163/254-3654979-4032409?ie=UTF8&redirect=true&tag=cplusplus-net-20 <== Ist es das, wonach ich suche?
Werden da solche Spielereien behandelt?