EVOLUTION-MANAGER
Edit File: unwrap_reference.hpp
/* [auto_generated] boost/numeric/odeint/util/unwrap_reference.hpp [begin_description] unwrap_reference [end_description] Copyright 2012-2013 Karsten Ahnert Copyright 2012-2013 Mario Mulansky Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef BOOST_NUMERIC_ODEINT_UTIL_UNWRAP_REFERENCE_HPP_INCLUDED #define BOOST_NUMERIC_ODEINT_UTIL_UNWRAP_REFERENCE_HPP_INCLUDED #include <boost/numeric/odeint/config.hpp> #if BOOST_NUMERIC_ODEINT_CXX11 #include <functional> #else #include <boost/ref.hpp> #endif namespace boost { #if BOOST_NUMERIC_ODEINT_CXX11 template<typename T> class reference_wrapper; template<typename T> struct unwrap_reference; #endif namespace numeric { namespace odeint { #if BOOST_NUMERIC_ODEINT_CXX11 template<typename T> struct unwrap_reference { typedef typename std::remove_reference<T>::type type; }; template<typename T> struct unwrap_reference< std::reference_wrapper<T> > { typedef typename std::remove_reference<T>::type type; }; template<typename T> struct unwrap_reference< boost::reference_wrapper<T> > { typedef typename boost::unwrap_reference<T>::type type; }; #else using ::boost::unwrap_reference; #endif namespace detail { #if BOOST_NUMERIC_ODEINT_CXX11 using ::std::ref; #else using ::boost::ref; #endif } } } } /* * * the following is the suggested way, but unfortunately it does not work with all compilers. */ /* #include <boost/config.hpp> #ifdef BOOST_NO_CXX11_HDR_FUNCTIONAL #include <boost/ref.hpp> #else #include <functional> #endif namespace boost { namespace numeric { namespace odeint { #ifndef BOOST_NO_CXX11_HDR_FUNCTIONAL template<typename T> struct unwrap_reference { typedef typename std::remove_reference<T>::type type; }; template<typename T> struct unwrap_reference< std::reference_wrapper<T> > { typedef typename std::remove_reference<T>::type type; }; template<typename T> struct unwrap_reference< boost::reference_wrapper<T> > { typedef typename boost::unwrap_reference<T>::type type; }; #else using ::boost::unwrap_reference; #endif } } } namespace boost { namespace numeric { namespace odeint { namespace detail { #ifndef BOOST_NO_CXX11_HDR_FUNCTIONAL using ::std::ref; #else using ::boost::ref; #endif } } } } */ #endif // BOOST_NUMERIC_ODEINT_UTIL_UNWRAP_REFERENCE_HPP_INCLUDED