Я хочу инициализировать переменную в нескольких ветвях if-else, чтобы использовать ее позже, в основном так:
Foo foo;
if (someCondition) {
std::string someString = getTheString();
// do some stuff
foo = Foo(someString);
} else {
int someInt = getTheInt();
//do some other stuff maybe
foo = Foo(someInt);
}
// use foo here
К сожалению, в этом примере тип Foo
имеет удаленный конструктор по умолчанию, поэтому код выше не компилируется. Есть ли способ инициализировать такую переменную таким образом?
РЕДАКТИРОВАТЬ:
Как вы можете видеть в моем примере, я использую различные конструкторы, а также делаю другие вещи в блоках if / else, так что, к сожалению, троичный оператор не работает.
Если нет способа, если бы foo
не был указателем, я, очевидно, мог бы выбрать другой подход, но мне было любопытно, если мой подход каким-то образом сработал.