Нашли или выдавили из себя код, который нельзя назвать нормальным,
на который без улыбки не взглянешь?
Не торопитесь его удалять или рефакторить, — запостите его на
говнокод.ру, посмеёмся вместе!
Он пытается решить проблему того, что конструктор нельзя "выключить" с помошью std::enable_if. Заменяет тип аргумента конструктора на ересь, если условие false.
Пускай теперь сделает тот же финт ушами с конструктором по умолчанию.
А вот завузут метаклассы и интролспекцию... заживем
Я понял, эта программа переводит саму себя на "PHP" в "PHP" динамическая тупизация и нет перегрузки функций, потому перевод невозможен, а в "Forth"вообще безтиповый, для перевода придётся мутить систему типов и перегрузку-кукурузку.
У меня накопилось несколько таких примеров. Я просто их изменял и сохранял в новый файл. И тёк.
Ещё у меня где-то валяется недописанная библиотечка с подобными макросами с нарастающей функциональностью:
- примитивы типа CAT QUOTE и всякие вспомогательные;
- булева логика;
- арифметика над 8-битными целыми в двоичном виде (без деления и множения);
- условные мокросы IF, WHEN и UNLESS;
- какая-то хуйня для объявления типов в виде: POINTER(POINTER(FUNCTION(void))) mas.
Не забивай себе голову, иди спать
...именно поэтому переведи на "Forth", ладно, переведи на "PHP".
Пускай теперь сделает тот же финт ушами с конструктором по умолчанию.
А вот завузут метаклассы и интролспекцию... заживем
У меня накопилось несколько таких примеров. Я просто их изменял и сохранял в новый файл. И тёк.
Ещё у меня где-то валяется недописанная библиотечка с подобными макросами с нарастающей функциональностью:
- примитивы типа CAT QUOTE и всякие вспомогательные;
- булева логика;
- арифметика над 8-битными целыми в двоичном виде (без деления и множения);
- условные мокросы IF, WHEN и UNLESS;
- какая-то хуйня для объявления типов в виде: POINTER(POINTER(FUNCTION(void))) mas.
Но в них имена другие.
https://gist.github.com/Jonathan50/c84f352f5634f2d28c9c