История изменений
Исправление m0rph, (текущая версия) :
это как? Кто-нибудь сможет пояснить?
Не скажу что было в коде VirtualBox, но как пример могу привести инициализацию глобальной переменной (которая больше нигде не используется) значением, возвращенным некоторой функцией. Подобным образом неумные люди добиваются автоматического выполнения этой функции до входа в main().
bool r = registerClassBuilder();
bool registerClassBuilder()
{
// Код регистрации класса на фабрике
return true;
}
Компилятор видя, что r больше нигде не используется, может предположить, что создавать ее необязательно, а значит и дергать registerClassBuilder() не требуется. Обычно такой трюк прокатывает, но вот если это написать в коде статической библиотеки, 100% будет сюрприз.
Исходная версия m0rph, :
это как? Кто-нибудь сможет пояснить?
Не скажу что было в коде VirtualBox, но как пример могу привести инициализацию глобальной переменной (которая больше нигде не используется) значением, возвращенным некоторой функцией. Подобным образом неумные люди добиваются автоматического выполнения этой функции до входа в main().
bool r = registerClassBuilder();
bool registerClassBuilder()
{
// Код регистрации класса на фабрике
return true;
}