Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
例如
template<class T> struct Foo { typedef int Type; void f(); }
Foo<T>::f()可以专门针对特定的T。定义的类型怎么样Type?如果它有效,我不需要专门化整个班级。有什么方法可以实现这个意图?
Foo<T>::f()
T
Type
template<class T> struct Foo { typedef typename some_class_template<T>::type Type; void f(); };
成员函数有声明和定义,你可以专门定义。对于成员类型,这是无法做到的。这些必须用他们的声明来专门化。
当然,我some_class_template可以是标准库中的任何东西,例如
some_class_template
typedef typename std::conditional<sizeof(T)==4, int, T>::type Type;