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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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