nested template partial specialization
От: frogkiller Россия  
Дата: 03.10.07 05:39
Оценка:
Здравствуйте, не подскажете, где я ошибся? Очень хочется сделать так:
#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;
}

Но не работает Что не так?
Курица — это инструмент, с помощью которого одно яйцо производит другие.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.