тем что его невозможно читать и отслеживать
Есть if constexpr
ну так про это и суть, пока его не было, хотелось сдохнуть при попытке понять что где и как подставляется
и это я еще плюсы трогал дай бог раз в 2 года, а уже так плохо было
С метапрограммированием приходится сталкиваться в плюсах очень редко. Это тебе еще повезет, если вообще когда-нибудь придется. Потому что в нормальном проекте оно используется в некоторых базовых библиотеках, которые редко меняются. А в обычном коде используются примитивные шаблоны. Ибо если ты напишешь какую-нибудь хуету, которую невозможно прочитать за 5 секунд, то тебе сразу на ревью эту хуйню адекватные люди завернут.
Основная проблема в си++ - это понимать ту простыню, которую тебе выкидывает компилятор, если ты ошибся при использовании этих базовых классов. В адекватной библиотеке будет хинт для типичных ошибок. Хотя этот хинт еще нужно будет найти, если тебе выкинуло 10 экранов сообщений об ошибках. Понятное дело, к этой хуйне привыкаешь, особенно если давно работаешь с этими библиотеками, но это одна из причин, почему вкатывание в плюсы для новичка довольно осложнено (а не байтоебство, которое должен знать любой уважающий себя программист).
Так-то да, но я о самом факте существования SFINAE - эти долбоебы вместо того, чтобы сразу добавить if constexpr годами дрочили SFINAE.
Там сразу к стенке ставить всю с++ committee нужно, чтобы тем, кто придет после них было понятно, как делать не стоит на уровне идеи и что бывает.
Ну тип ты придумал темплейты, написал 3 штуки, понял, что очень облегчает if на тип, добавил функционал - все.