| 28 | |
| 29 | template <typename Ret, typename Class, typename... Args> |
| 30 | auto cv_qualifiers(identity<Ret (Class::*)(Args...)>) |
| 31 | { |
| 32 | return std::tuple<identity<Ret (Class::*)(Args...)>, |
| 33 | identity<Ret (Class::*)(Args...) const>, |
| 34 | identity<Ret (Class::*)(Args...) volatile>, |
| 35 | identity<Ret (Class::*)(Args...) const volatile>> {}; |
| 36 | } |
| 37 | |
| 38 | template <typename Ret, typename Class, typename... Args> |
| 39 | auto ref_qualifiers(identity<Ret (Class::*)(Args...)>) |