Add utilities for std::reference_wrapper
This adds the following helpers for handling std::reference_wrapper:
- A predicate
IsReferenceWrapper_v<R>for detecting ifRis astd::reference_wrapper<T>. - A helper function
resolveReffor resolving references wrapped instd::reference_wrapper. For typeTproviding a methodT::foo()this allows to transparently useresolveRef(t).foo()iftis either a plainTor astd::reference_wrapper<T>. - A type alias
ResolveRef_t<T>to determine the resolved type forT.