Ich versuche, in einer std::tuplevariierenden Anzahl von Werten zu speichern , die später als Argumente für einen Aufruf eines Funktionszeigers verwendet werden, der den gespeicherten Typen entspricht. Ich habe ein vereinfachtes Beispiel erstellt, das das Problem zeigt, das ich nur schwer lösen kann: #include <iostream> #include <tuple> void f(int a, …
Warum gibt es std::make_uniquein der Standard-C ++ 11-Bibliothek keine Funktionsvorlage? ich finde std::unique_ptr<SomeUserDefinedType> p(new SomeUserDefinedType(1, 2, 3)); ein bisschen ausführlich. Wäre das Folgende nicht viel schöner? auto p = std::make_unique<SomeUserDefinedType>(1, 2, 3); Dies verbirgt das newschön und erwähnt den Typ nur einmal. Wie auch immer, hier ist mein Versuch einer …
Ich habe gerade eine generische Objektfabrik geschrieben und die Boost-Präprozessor-Metabibliothek verwendet, um eine variable Vorlage zu erstellen (mit 2010 und ohne Unterstützung). Meine Funktion verwendet rval-Referenzen und std::forwardfür eine perfekte Weiterleitung, und es hat mich zum Nachdenken gebracht ... Wenn C ++ 0X herauskommt und ich einen Standard-Compiler habe, würde …
Beim Durchsuchen der aktuellen Implementierung neuer C ++ 11-Header durch gcc bin ich auf das Token "......" gestoßen. Sie können überprüfen, ob der folgende Code gut kompiliert werden kann [via ideone.com]. template <typename T> struct X { /* ... */ }; template <typename T, typename ... U> struct X<T(U......)> // …
In C ++ 11 gibt es verschiedene Vorlagen wie diese: template< class T, class... Args > unique_ptr<T> make_unique( Args&&... args ) { return unique_ptr<T>(new T(std::forward<Args>(args)...)); } Hier gibt es einige Kuriositäten: Der Ausdruck std::forward<Args>(args)...verwendet beide Argsund argsnur einen ...Token. Darüber hinaus std::forwardist eine nicht variadische Vorlagenfunktion nur ein Vorlagenparameter und …
Ist es möglich, ein Parameterpaket für eine spätere Verwendung zu speichern? template <typename... T> class Action { private: std::function<void(T...)> f; T... args; // <--- something like this public: Action(std::function<void(T...)> f, T... args) : f(f), args(args) {} void act(){ f(args); // <--- such that this will be possible } } Dann …
Dies ist eine Fortsetzung meiner vorherigen Frage zu hübsch gedruckten STL-Containern , für die wir eine sehr elegante und vollständig allgemeine Lösung entwickelt haben. In diesem nächsten Schritt möchte ich das hübsche Drucken std::tuple<Args...>mit variadischen Vorlagen einschließen (dies ist also ausschließlich C ++ 11). Denn std::pair<S,T>ich sage einfach std::ostream & …
Wie kann ich die Anzahl der Argumente für eine variable Vorlagenfunktion ermitteln? dh: template<typename... T> void f(const T&... t) { int n = number_of_args(t); ... } Was ist der beste Weg, um number_of_argsdas oben genannte zu implementieren ?
Ich versuche, verschiedene Vorlagen und Funktionen zu lernen. Ich kann nicht verstehen, warum dieser Code nicht kompiliert wird: template<typename T> static void bar(T t) {} template<typename... Args> static void foo2(Args... args) { (bar(args)...); } int main() { foo2(1, 2, 3, "3"); return 0; } Wenn ich kompiliere, schlägt es mit …
PRÄMISSE: Nachdem ich ein wenig mit verschiedenen Vorlagen herumgespielt hatte, wurde mir klar, dass es bald ziemlich umständlich wird, etwas zu erreichen, das etwas über die trivialen Metaprogrammieraufgaben hinausgeht. Insbesondere fand ich mich für eine Art und Weise will auszuführen generische Operationen über ein Argument Pack wie Iterierte , Split …
Ich habe mit variablen C ++ 0x-Vorlagen experimentiert, als ich auf dieses Problem gestoßen bin: template < typename ...Args > struct identities { typedef Args type; //compile error: "parameter packs not expanded with '...' }; //The following code just shows an example of potential use, but has no relation //with …
Selbsterklärend. Angenommen, ich habe Typlisten wie folgt: using type_list_1 = type_list<int, somestructA>; using type_list_2 = type_list<somestructB>; using type_list_3 = type_list<double, short>; Sie können eine variable Anzahl von Typlisten sein. Wie erhalte ich eine Typeliste für kartesische Produkte? result = type_list< type_list<int, somestructB, double>, type_list<int, somestructB, short>, type_list<somestructA, somestructB, double>, type_list<somestructA, …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.