ИАР инициализирует константы сразу. Что касается классов с конструкторами - тут такая тема, что C++ не гарантирует порядок вызова конструкторов глобальных объектов, определённых в разных файлах. Если конструктор одного объекта полагается на http://www.cs.technion.ac.il/users/yechiel/c++-faq/static-init-order.html то, что другой объект инициализирован, нужно как-то форсировать порядок инициализации. Стандартное решение - сделать объект статической переменной в функции, типа так
class WebServer { ... };
WebServer *get_web_server()
{
static WebServer ws; // constructor called once
return &ws;
}
Переменная ws получается почти глобальной, но вызов конструктора откладывается до первого вызова get_web_server.