1 /*============================================================================= 2 Copyright (c) 2014 Paul Fultz II 3 unwrap.h 4 Distributed under the Boost Software License, Version 1.0. (See accompanying 5 file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 6 ==============================================================================*/ 7 8 #ifndef BOOST_HOF_GUARD_UNWRAP_H 9 #define BOOST_HOF_GUARD_UNWRAP_H 10 11 #include <type_traits> 12 #include <functional> 13 14 namespace boost { namespace hof { namespace detail { 15 16 template <class T> 17 struct unwrap_reference 18 { 19 typedef T type; 20 }; 21 template <class T> 22 struct unwrap_reference<std::reference_wrapper<T>> 23 { 24 typedef T& type; 25 }; 26 27 }}} // namespace boost::hof 28 29 #endif 30