Стандартный аналог __attribute__ ((constructor))

188
12 февраля 2019, 16:50

Существует ли стандартный аналог конструкции gcc:

__attribute__ ((constructor))

Я понимаю, что всегда можно написать:

 static bool ini_once = ( do_somthing(), true );

, но хотелось бы минимизировать работу при портировании кода с gcc на стандарт С++11/С++14 и не изобретать лишних переменных.

Answer 1

Этот атрибут в первую очередь служит для того, чтобы привнести динамическую инициализацию (в стиле С++) в языки, в которых динамическая инициализация не поддерживается, то есть в С.

В С++ любая динамическая инициализация - это и есть аналог. Вы как раз сами и привели абстрактный пример. Можно так, а можно поместить эти действия в конструктор глобального объекта.

READ ALSO
Как recv() понимает, что все данные получены в случаи TCP?

Как recv() понимает, что все данные получены в случаи TCP?

Насколько я понимаю, данные через TCP передаются как сплошной поток, до тех пор пока соединение не будет разорваноЕсли посмотреть на структуру...

164
как вызвать метод одного класса из другого класса

как вызвать метод одного класса из другого класса

Необходимо вызвать метод объекта ob2 из метода exe объекта ob1, используя ссылку, находящуюся в векторе объекта ob1

254
Что может быть быстрее, чем math sqrt?

Что может быть быстрее, чем math sqrt?

Передо мной стоит задача: Мне необходимо максимально быстро найти количество целых квадратных корней из нескольких триллионов целых чисел,...

211
Анонимный объект

Анонимный объект

Что такое анонимный объект в С++?

207