Ich bin nicht sicher, was es wirklich ist, was ich versuche zu tun, also bitte entschuldigt mich, wenn der Titel nicht passt.Erstelle ein anderes Parameter Pack aus einem Parameter Pack
Ich habe eine Klassenvorlage, die ein Vorlagenparameterpaket nimmt. Ich möchte, dass der Konstruktor Typen erwartet, die von den Typen im Parameterpack abhängen, genauer gesagt möchte ich jedes Parameterpaketelement an eine andere Klassenvorlage (mit einem Argument) übergeben, um die Konstruktorparameter zu erstellen.
Das ist also die Struktur I Start bin heraus mit:
template<class ElementType>
struct ElementPreset{
//... stores a preset for an element of ElementType
};
template<class... Elements>
class WidgetPreset{
WidgetPreset(ElementPreset<Elements...> pPresets)
:presets(pPresets){}
std::tuple<ElementPreset<Elements...>> presets;
}
Der obige Code funktioniert nicht, aber was ich versuche zu tun, einen neuen Parameter Pack von Elements
zu schaffen, in dem jedes Element ein ElementPreset<Element>
anstelle von Element
.
Gibt es dafür eine Sprachunterstützung in C++?
@Justin - sind Sie sicher? Mein Code ist anders. – max66
Nein [es funktioniert] (https://godbolt.org/g/HWUibq), ich habe es einfach vermasselt, als ich es kompilieren wollte. – Justin
@Justin - Dinge, die passieren. – max66