template
class Bimap {
public:
class Data {
private:
template Data& set(T);
template<>
One way forget templates, overload:
Data& set(T1 v) { /*...*/ }
but here is a trick which I use sometimes
you can specialize class template within class:
class {
template
struct function_ {
static void apply(T);
};
template<>
struct function_ {
...
};
template
void function(T t) { return function_::apply(t); }