С++ Error: use undeclared identifier 'factory_candy'

Есть код

if (factory_data.count("candys") == 1) auto& factory_candy = get<uint64_t(factory_data["candys"]);
else auto factory_candy = 1;

После этого я использую эту переменную. При компиляции пишется, что переменная не определена. Подскажите, как сделать правильно ?


Ответы (1 шт):

Автор решения: DiHASTRO

Есть такая вещь, как область видимости. Грубо говоря то, что было создано внутри фигурных скобок, остаётся внутри фигурных скобок. Однако область видимости не ограничивается фигурными скобками, а, как в вашем случае, ещё появляется в условном операторе. То есть ваша созданная переменная внутри условных выражений попросту исчезает в никуда.

Дабы решить проблему, вам нужно объявить переменную заранее вне условного оператора.

→ Ссылка