
8 Jul
2005
8 Jul
'05
7:22 p.m.
Tobias Schwinger wrote:
It is not too clear whether it applies to partial template specialization, since we don't really "form" a type - we just consider a possibitity:
typedef int my_const_function() const;
template<typename T> struct remove_const { typedef T type; };
template<typename T> struct remove_const< T const > { typedef T type; };
// somwhere else remove_const<my_const_function>::type // ill-formed?
Well formed, returns my_const_function. The specialization doesn't match.
http://tinyurl.com/52g6s (item 295) is still too thin for this case, isn't it?
#295 makes some previously ill-formed constructs well formed, such as typedef my_const_function const my_very_const_function; but does not affect the above example.