Привет,
Вчера вечером в голову пролезла дурная идея: а можно ли на C++ написать typedef, задающий указатель на функцию? Конечно, можно, ответил мозг. А можно ли, чтобы эта функция принимала параметром другую такую же функцию (или даже несколько), не унималась дурная идея. И чтобы возвращала результатом тоже указатель на такую же функцию. Ну, помнишь, как в шутке про auto auto(auto)?
В общем, вот. Можно ли описать как-то подобную квайн-функцию? В лоб — не получается, компилятор не понимает тип параметра функции, потому что не скомпилировал ещё сам тайпдеф на функцию. Шаблонная магия?
typedef int (*foo)(char); // OK
typedef bar (*bar)(bar); // Скажи квайнам нет!
typedef bar (*bar)(bar,bar);
P.S. Практического смысла тут никакого — просто флюктуация нейронной активности.
P.P.S. Ни одно вещество не пострадало.