LINUX.ORG.RU

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

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

Всем спасибо за участие. В общем даже чисто на шаблонах эта штука не работает.

template<typename T>
void foo(T f, int a){}

template<typename T>
void bar(T f, int a){
    return foo(f, a);
}

Извне попытка вызова bar опять заканчивается бесконечным описанием нужного типа шаблона foo. Попытка прикрутить decltype также ни к чему не привела. Как тут правильно заметили, Шарик упоролся в рекурсивный тип, который С++ не умеет.

Ухищрения с вспомогательными структурами работают, но это бесполезно усложняет код. В итоге просто немного переделал эту часть программы, чтобы не хотелось странного.

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

Всем спасибо за участие. В общем даже чисто на шаблонах эта штука не работает.

template<typename T>
void foo(T f, int a){}

template<typename T>
void bar(T f, int a){
    return foo(f, a);
}

Извне попытка вызова bar опять заканчивается бесконечным описанием нужного типа шаблона foo. Как тут правильно заметили, шарик упоролся в рекурсивный тип, который с++ не умеет.

Ухищрения с вспомогательными структурами работают, но это бесполезно усложняет код. В итоге просто немного переделал эту часть программы, чтобы не хотелось странного.