It's impossible to make free functions const-quilified, but what does the following specialization mean and when is it applied?
template<typename _Res, typename... _ArgTypes>
struct _Weak_result_type_impl<_Res(_ArgTypes...) const>
{ typedef _Res result_type; };
I can use this specialization the following way:
typedef _Weak_result_type_impl<int () const>::result_type type;
But what the function type is "int () const". When is it used?