Кто-нибудь может объяснить этот параграф текущего проекта стандарта C ++ 0x? - PullRequest
6 голосов
/ 11 апреля 2011

Может ли кто-нибудь объяснить это утверждение из ISO N3242 §3.2, 2-я точка

Функция размещения или освобождения без размещения для класса используется odr в определении конструктора этого класса.Функция освобождения без размещения для класса используется odr для определения деструктора этого класса или путем выбора путем поиска в точке определения виртуального деструктора (12.4) .26 Функция копирования-назначения для классаиспользуется odr неявно определенной функцией копирования-назначения для другого класса, как указано в 12.8.Функция назначения перемещения для класса используется odr неявно определенной функцией назначения перемещения для другого класса, как указано в 12.8.

Стандарт ISO 2003 гласит:

Функция копирования-присвоения для класса используется неявно определенной функцией копирования-присвоения для другого класса, как указано в 12.8.

Какова действительная разница в этих утверждениях?

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

Я знаю, что конструктор перемещения / функция назначения перемещения -> добавлена ​​новая функция.

Может любойобъяснить это с помощью примера / программы?

пожалуйста .............

пожалуйста .......... ответ

1 Ответ

4 голосов
/ 11 апреля 2011

Обоснование этого дополнения с примерами можно найти здесь . Короче говоря, это разъяснение того, когда именно должна быть определена функция распределения / освобождения для класса.

Правило (C ++ 03) One Definition требует, чтобы каждая переменная или функция, которая использовала в программе, для очень специфического определения «use», имела ровно одно определение. Поэтому описание того, когда (де) функция распределения считается «используемой», также обязывает, когда требуется определение.

Во избежание путаницы между общим значением слова «use» и значением «use», как оно определено в ODR, слово «use» было заменено на «odr-use» всякий раз, когда подразумевается второе значение.

...