emplace_back für eigene Klasse
-
Hallo
Folgender Code:
class MyObject { std::string _value1; int _value2: double _value3; public: MyObject(const std::string& value1, const int value2, const double value3) : _value1(value1), _value2(value2), _value3(value3){ } }; class MyContainer { std::vector<MyObject> _internalVector {}; public: void Add(const std::string& value1, const int value2, const double value3) { _internalVector.emplace_back(value1, value2, value3); } };
Würde die Methode Add gerne generisch machen. So wie emplace_back auch. Kann mir da jemand helfen?
-
In wieweit generisch? Sollen genau 3 verschiedene Daten(typen) angegeben werden oder beliebig viele Parameter?
Bei letzterem kannst du einfach die Deklaration von vector::emplace_back übernehmen.
Und zur Implementierung dient das Stichwort "Perfect Forwarding", s. z.B. Perfect-forwarding while implementing emplace.
-
Hi th69
... beliebig viele Parameter.
... die Deklaration von std::emplace_back ist einfach
... danke für das Stichwort "Perfect Forwarding", mal schauen ob ich das so umgesetzt bekomme.