ну там нет как такого "тайпчека". В крестах есть базовый тайпчек, который сишный. Но проще всю стадию компиляцию воспринимать за тайпчек. Ведь что угодно может от чего угодно зависеть
Ну, я с той позиции, что сначала у нас происходит раскрытие шаблонов, а потом тайпчек. Мне вот не совсем понятно в каком месте на этой шкале происходит валидация концепта.
там в крестах есть заморочки с выбором перегрузки. Вызов функции может порождать(условно) множество кандидатов. Некоторые из них могут быть невалидными
я где-то описывал всё подробно. Лань искать. Если попроще. Для каждого вызова может номинально подходить несколько функций. Вот этот requires(который первый) работает в этот момент. Есть там false - функция убирается из кандидатов, если true остаётся. С концептами тоже самое примерно
так же там есть зачатки "подходимости по концепту". Типа если один включает в себя другой, то этот другой более общий, а значит имеет меньший приоритет