Здравствуйте, uaf, Вы писали:
uaf>в том то и дело, что это объявление
A>>A>>template <class Obj>
A>>class Ett {};
A>>
uaf>появляется ПОСЛЕ Rec...
class Rec
{
public:
Rec() {};
template <class T> void set(const T& rVal) {std::cout << "default";}
};
template <class Obj>
class Ett {};
template <class T>
void rec_set(Rec& r, const T& rVal) { r.set(rVal); }
template <class T>
void rec_set(Rec&, const Ett<T>& rVal) { std::cout << "Obj"; }
// таких классов будет много
class Obj1 {};
class Obj2 {};
int main(int argc, char* argv[])
{
Rec rec;
Ett<Obj1> eo1;
Ett<Obj2> eo2;
rec_set(rec, 1); // default
rec_set(rec, eo1);
rec_set(rec, eo2);
return 0;
}