История изменений
Исправление 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. Как тут правильно заметили, шарик упоролся в рекурсивный тип, который с++ не умеет.
Ухищрения с вспомогательными структурами работают, но это бесполезно усложняет код. В итоге просто немного переделал эту часть программы, чтобы не хотелось странного.