![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 37 Всего: 85 |
Тэкс.., насчет деструкторов.
Во первых, все эти нововведения (=delete, =default), ввели не для конструкторов, и не для деструкторов, их ввели вообще для всех мембер-функций. =delete - можно применить вообще на любую мембер-функцию, если не ошибаюсь. =default - на любую функцию, естественно из тех, которые компилятор генерирует автоматически. Последних правда не так много, это : конструктор по умолчанию, копи/мув конструктор, копи/мув оператор=, и деструктор. (если ничо не забыл). Согласитесь, было бы не логично, вводя данную фичу для всех функций, делать какие-то особые исключения для деструкторов. В общем, в том случае если вы не считаете что это повышает стройность (логическую завершенность, self-descriptivenes, и т.д) можете считать, что деструкторы попали "под раздачу". Все что я написал, это IMHO на текущий момент. я могу ошибацца. PS: Щас то я попривык уже, но раньше, мне жутко не нравилось, что компилятор, без моего ведома, вставляет какие-то дефолтные функции. Да еще вставляет не всегда, а по каким-то не совсем очевыдным условиям... Идеально было бы вовсе запретить ему вставлять что либо, без специального указания. Но, увы, этого уже не исправить. А с добавлением move операций (мув-конструктора, и мув-оператора=), ситуация приобрела бы в этом плане, вообще паталогический характер. Сложные логические условия, в каких случаях генерируюцца тот или иной конструктор/оператор, нужно знать, и держать в голове. Фичи (=default,=delete), разруливают эту ситуацию, да еще и сглаживают прошлые недостатки. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |