История изменений
Исправление eao197, (текущая версия) :
А еще лучше было бы в этой задаче вообще обойтись без шаблонов:
namespace A {
void f() { cout << "A::f()" << endl; }
}
namespace B {
void g() { cout << "B::g()" << endl; }
}
namespace C {
struct f_tag {};
struct g_tag {};
void h(f_tag) { A::f(); }
void h(g_tag) { B::g(); }
}
int main()
{
h( C::f_tag() );
h( C::g_tag() );
}
Исходная версия eao197, :
А еще лучше было бы в этой задаче вообще обойтись без шаблонов:
namespace A {
void f() { cout << "A::f()" << endl; }
}
namespace B {
void g() { cout << "B::g()" << endl; }
}
namespace C {
struct f_tag {};
struct g_tag {};
void h(f_tag) { A::f(); }
void h(g_tag) { B::g; }
}
int main()
{
h( C::f_tag() );
h( C::g_tag() );
}