Статическая инициализация C ++ против __attribute __ ((конструктор))

Пример:

struct Foo { Foo() { printf("foo\n"); } };
static Foo foo;

__attribute__((constructor)) static void _bar() { printf("bar\n"); }

Детерминированный ли foo или bar ] печатается первым?

(Я надеюсь и ожидаю, что конструкторы статических объектов всегда выполняются первыми, но не уверен, и документ GCC об атрибуте конструктора ничего не говорит об этом.)

17
задан Mike Seymour 8 December 2011 в 15:50
поделиться