Ich versuche, einen neuen Konstruktor eine vorhandene Klasse hinzuzufügen und frage mich, ob ich irgendwie eine emplace
Initialisierung einer optional
machen kann und dann diesen Wert im Initialisierer für einen anderen Mitgliedswert verwenden.Kann ich optional :: emplace als Memberinitialisierer aufrufen?
Zum Beispiel:
class sample {
my_type sc;
optional<opt_type> run;
sample() :
sc(gen_default()) {
}
enum ctor_alt { ctor_alt };
sample(ctor_alt) :
emplace(run, ctor_arg), /* Possible somehow? */
sc(run.field) {
}
Meine primäre Motivation ist, dass ich will nicht die Art von my_type
verändern. Es gibt viele Benutzer dieser Variablen und wenn Sie sie in einen Wrapper einfügen, müssen Sie viel Code ändern.