LINUX.ORG.RU

История изменений

Исправление fsb4000, (текущая версия) :

Еще раз: на этапе компиляции в следствии мономорфизации параметрический полиморфизм превращается в ad-hoc-полиморфизм, то есть генерируются конкретные реализации для конкретных используемых типов, а вся информация об обобщении стирается

Я не уверен, что даже трейты можно повторить в С++20.

Это просто частичная специализация + проверка что специлизация существует, транслируется на С++, почти строчка в строчку:

https://godbolt.org/z/8Gn86v

Это можно повторить даже на С++98(более многословно, но шаблоны Тюринг полны, так что возможно всё…)

Исходная версия fsb4000, :

Еще раз: на этапе компиляции в следствии мономорфизации параметрический полиморфизм превращается в ad-hoc-полиморфизм, то есть генерируются конкретные реализации для конкретных используемых типов, а вся информация об обобщении стирается

Я не уверен, что даже трейты можно повторить в С++20.

Это просто частичная специализация + проверка что специлизация существует, транслируется на С++, почти строчка в строчку:

https://godbolt.org/z/zKP6fW

Это можно повторить даже на С++98(более многословно, но шаблоны Тюринг полны, так что возможно всё…)