Что именно делает правило определения в С++? Единственное надежное место, которое я могу найти, - это язык программирования С++, 3rd. ed., P. 9.2.3. Есть ли официальное определение правила, кроме этого?
Что такое одно правило определения в С++?
Ответ 1
Истина в стандарте (3.2 Одно правило определения):
Никакая единица перевода не должна содержать больше чем одно определение любой переменной, функция, тип класса, тип перечисления или шаблон.
[...]
Каждая программа должна содержать точно одно определение каждого нестрочного функции или объекта , который используется в эта программа; не требуется диагностика. Определение может отображаться явно в программе, его можно найти в стандартную или пользовательскую библиотеку или (при необходимости), это неявно (см. 12.1, 12.4 и 12.8). встроенная функция должна быть определена в каждая единица перевода, в которой она б.