Возврат объекта шаблонного типа от типа Type из специализации шаблона метода от того же типа

Доброго времени суток, пишу класс содержащий несколько std::set от разных типов, нужно сделать метод возвращающий указатель на нужное std::set, в зависимости от того какой тип был подан в шаблон, хочу это реализовать специализацией шаблонов, в черновиках стандарта похожего не нашел.

Класс с шаблоном метода:

C++Выделить код

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

typedef std::set<FrameSelection> FrameSet;
typedef std::set<Foo> FooSet;
 
class SelectionManager {
protected:
    Project current_project_;
    FrameSet   frames_;
    FooSet      foo_;
...
public:
    template < typename TContextRepresented >
        std::set<TContextRepresented> 
          getSelectionSetPtr() { return 0; }
...
};

специализация шаблона для типа FrameSet

C++Выделить код

1
2
3
4
5

template <> inline std::set<FrameSelection>
    SelectionManager::getSelectionPtr
                        < std::set, FrameSelection >() {
        return &frames_;
    }

заметим, что специализация шаблона для типа FrameSet, в файле .cpp у меня обьявляется как inline, но возвращает 0, видимо из за того что это не работает, если определять специализацию в хидере в теле класса, то вылетают ошибки.

Возможнно ли вообще такое? Где об этом почитать? Если в черновиках стандарта и гугле не нашел? Или же примера кода будет достаточно.