Правильность нешаблонного кода более или менее понятна каждому - компилятор проверяет синтаксис, типы и правила. Компилятор имеет все необходимое для выполнения этих проверок.
Но когда компилятору приходится компилировать шаблонный код (например, STL или Boost), у него недостаточно информации.
Хотя шаблонный код не создается, компилятор не знает, что означают операции, определены ли они для типов, которые будут использоваться для создания экземпляров этого шаблонного кода и т. Д. Шаблонный код не может быть скомпилирован до реализации.
Существует ли такая вещь, как достоверность шаблонного кода? Требуется ли от нас компилировать каждый экземпляр шаблонного кода для проверки его достоверности?