
Tobias Schwinger wrote:
Can we remove the fully-general wildcards for each property from the interface, then?
Can we remove *any* wildcard tags from the interface (as there is only "nonmember" left)? I believe so! Introducing another traits class will do the trick: template<typename T> struct is_nonmember_callable_builtin; // not sure on this name suggestions welcome // matches function, function pointer and function reference types While we're at it: This probably makes 'is_function_pointer' and 'is_function_reference' less useful (because these can be treated uniformly because of function-to-pointer conversion in most cases). I'm not sure so I'll forward this post to Jonathan Turkanis' (who requested the feature) email address and hope he can comment on if and why dropping these templates would or would not work for him. Regards, Tobias