Все, что связано с C++ One Definition Rule (ODR), то есть правилом стандарта C++, запрещающим множественные определения большинства языковых сущностей. ODR примерно требует, чтобы большинство языковых сущностей (объекты, функции, шаблоны и т. д.) Имели уникальное (не дублированное) определение в одной и той же единице перевода или во всей программе, в то время как несколько объявлений все еще возможны.