LINUX.ORG.RU

История изменений

Исправление kiverattes, (текущая версия) :

Может быть компилятор решил не генерировать какой-либо код конструктора и деструктора вообще, ибо ваши структуры представляют собой сущности размером в ноль байт, где нечего конструировать и деконструировать? Это в стандарте написано, что у каждого класса/структуры обязательно будет конструктор, на крайняк умолчательный. Но компиляторы помимо стандарта взаимодействуют с реальным миром, где часто есть возможность оптимизации. Компилятор посмотрел на вашу структуру и подумал: пускай чувак считает, что у него есть умолчательный конструктор, который ничего не делает. Но его реализация ничем не будет отличаться от полного его отсутствия: я конечно могу ему родить функцию с 10 инструкциями «nop» внутри, но нахрена козе боян?

Исправление kiverattes, :

Может быть компилятор решил не генерировать какой-либо код конструктора и деструктора вообще, ибо ваши структуры представляют собой сущности размером в ноль байт, где нечего конструировать и деконструировать? Это в стандарте написано, что у каждого класса/структуры обязательно будет конструктор, на крайняк умолчательный. Но компиляторы помимо стандарта взаимодействуют с реальным миром, где часто есть возможность оптимизации. Компилятор посмотрел на вашу структуру и подумал: пускай чувак считает, что у него есть умолчательный конструктор, который ничего не делает. Но его реализация ничем не будет отличаться от полного его отсутствия, так что некуй лишний код рожать.

Исправление kiverattes, :

Может быть компилятор решил не генерировать какой-либо код конструктора и деструктора вообще, ибо ваши структуры представляют собой сущности размером в ноль байт, где нечего конструировать и деконструировать? Это в стандарте написано, что у каждого класса/структуры обязательно будет конструктор, на крайняк умолчательный. Но компиляторы помимо стандарта взаимодействуют с реальным миром, где часто есть возможность оптимизации.

Исходная версия kiverattes, :

Может быть компилятор решил не генерировать какой-либо явный код конструктора и деструктора, ибо структуры представляют собой сущности размером в ноль байт, где нечего конструировать и деконструировать? Компиляторы нынче умные пошли, и не на такое способны.