C++ Почему невозможно вызывать функции глобально без инициализации новых переменных?C++

Программы на C++. Форум разработчиков
Anonymous
C++ Почему невозможно вызывать функции глобально без инициализации новых переменных?

Сообщение Anonymous »

Если бы мне пришлось запускать функции в глобальной области видимости, например чтобы заполнить статический контейнер в несколько cpp-файлов, то при каждом вызове такой функции мне придется инициализировать еще и новую переменную, хотя они мне и не нужны.

Вот упрощенный пример таких фиктивных переменных.

Код: Выделить всё

static bool foo() { /*some code*/ return true; }
static bool foo2() { /*some code*/ return true; }
static bool bDummy1 = foo();
static bool bDummy2 = foo2();
Технически bDummy1 и bDummy2 излишни, но из-за синтаксиса C++ они все равно необходимы. Почему нет другого способа решить эту проблему?

Я знаю, что создание таких лишних переменных требует очень мало накладных расходов, а ключевое слово static делает их видимыми только локально в cpp-файлах, но это по-прежнему не является хорошим стилем кодирования.

Подробнее здесь: https://stackoverflow.com/questions/792 ... lizing-new

Вернуться в «C++»