Здравствуйте, не подскажете, где я ошибся? Очень хочется сделать так:
#include <iostream>
struct FirstSelector {};
struct SecondSelector {};
struct Foo {};
template <typename T>
struct Bar
{
template <typename U>
struct Nested
{
void test();
};
Nested<FirstSelector> m_first;
Nested<SecondSelector> m_second;
void test()
{
m_first.test();
m_second.test();
}
};
template <> template <typename T>
void Bar<T>::Nested<FirstSelector>::test()
{
std::cout << "first" << std::endl;
}
template <> template <typename T>
void Bar<T>::Nested<SecondSelector>::test()
{
std::cout << "second" << std::endl;
}
int main(int argc, char *argv[])
{
Bar<Foo> bar;
bar.test();
return 0;
}
Но не работает
Что не так?
Курица — это инструмент, с помощью которого одно яйцо производит другие.