Подтвердить что ты не робот

Что такое одно правило определения в С++?

Что именно делает правило определения в С++? Единственное надежное место, которое я могу найти, - это язык программирования С++, 3rd. ed., P. 9.2.3. Есть ли официальное определение правила, кроме этого?

4b9b3361

Ответ 1

Истина в стандарте (3.2 Одно правило определения):

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

[...]

Каждая программа должна содержать точно одно определение каждого нестрочного функции или объекта , который используется в эта программа; не требуется диагностика. Определение может отображаться явно в программе, его можно найти в стандартную или пользовательскую библиотеку или (при необходимости), это неявно (см. 12.1, 12.4 и 12.8). встроенная функция должна быть определена в каждая единица перевода, в которой она б.