LINUX.ORG.RU

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

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

Вот если натянуть на язык Си S-expression

Нарисуешь, как будет выглядить в виде S-expression:

template<int I, typename Head, typename... Args>
    struct getter
    {
        typedef typename getter<I-1, Args...>::return_type return_type;
        static return_type get(tuple<Head, Args...> t)
        {
            return getter<I-1, Args...>::get(t);
        }
    };

?

По мне, так пусть лучше будут структуры, соответствующие конструкциям языка, а не списки, где надо запоминать, что в первом элементе возвращаемый тип, во втором имя, в третьем ….

если в коде можно помимо просто main сделать некий специальный main_compiletime который бы видел весь собственный исходник

Это хоть сейчас любым C++ генератором можно делать.

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

Вот если натянуть на язык Си S-expression

Нарисуешь, как будет выглядить в виде S-expression:

template<int I, typename Head, typename... Args>
    struct getter
    {
        typedef typename getter<I-1, Args...>::return_type return_type;
        static return_type get(tuple<Head, Args...> t)
        {
            return getter<I-1, Args...>::get(t);
        }
    };

?

По мне, так пусть лучше будут структуры, соответствующие конструкциям языка, а не списки, где надо, запоминать, что в первом элементе возвращаемый тип, во втором имя, в третьем ….

если в коде можно помимо просто main сделать некий специальный main_compiletime который бы видел весь собственный исходник

Это хоть сейчас любым C++ генератором можно делать.