Dyzzet|
C++ Data Science Алгоритмы Темы · Блог · YouTube · Telegram
Какие специальные функции неявно объявляет компилятор?


Из выступления Говарда Хиннанта

У классов в C++03 есть специальные члены-функции: пользовательские конструкторы (custom constructors), конструктор по умолчанию (default constructor), деструктор (destructor), конструктор копирующего присваивания (copy constructor), оператор копирующего присваивания (copy assignment operator). C++11 добавляет перемещающий конструктор (move constructor) и оператор перемещающего присваивания (move assignment operator) и спецификаторы = default и = delete.

Правила, по которым компилятор неявно объявляет и удаляет такие функции, очень сложные. Есть разные версии таблиц с подсказками. Но они показывают только особенности каждой специальной функции в отдельности.


// User declares:
// Compiler implicitly declares:
Зарегистрируйтесь и войдите, чтобы оставлять комментарии и голосовать.

Также может быть интересным
На моём YouTube-канале

Такой код на C++ уже не напишешь (спецификации исключений throw)

Бот для Telegram С НУЛЯ на C++. Полный РАЗБОР

Пишем 42 алгоритма CRC (и тестируем с помощью библиотеки Boost.Test)
© MMXI—MMXXV. RSS
 Boosty
Светлая тема / тёмная тема