template<class T>
Rodin::Utility::UnwrapReference struct

Metafunction to unwrap std::reference_wrapper types.

Template parameters
T The type to potentially unwrap.

For non-reference_wrapper types, the result is T itself. For std::reference_wrapper<U>, the result is U&.

Example usage:

using Unwrapped1 = UnwrapReference<int>::Type;                         // int
using Unwrapped2 = UnwrapReference<std::reference_wrapper<int>>::Type; // int&

Public types

using Type = T
Identity for non-reference_wrapper types.