diff options
author | Chanho Park <chanho61.park@samsung.com> | 2014-12-11 18:55:56 +0900 |
---|---|---|
committer | Chanho Park <chanho61.park@samsung.com> | 2014-12-11 18:55:56 +0900 |
commit | 08c1e93fa36a49f49325a07fe91ff92c964c2b6c (patch) | |
tree | 7a7053ceb8874b28ec4b868d4c49b500008a102e /boost/numeric/odeint/util/unwrap_reference.hpp | |
parent | bb4dd8289b351fae6b55e303f189127a394a1edd (diff) | |
download | boost-08c1e93fa36a49f49325a07fe91ff92c964c2b6c.tar.gz boost-08c1e93fa36a49f49325a07fe91ff92c964c2b6c.tar.bz2 boost-08c1e93fa36a49f49325a07fe91ff92c964c2b6c.zip |
Imported Upstream version 1.57.0upstream/1.57.0
Diffstat (limited to 'boost/numeric/odeint/util/unwrap_reference.hpp')
-rw-r--r-- | boost/numeric/odeint/util/unwrap_reference.hpp | 169 |
1 files changed, 169 insertions, 0 deletions
diff --git a/boost/numeric/odeint/util/unwrap_reference.hpp b/boost/numeric/odeint/util/unwrap_reference.hpp new file mode 100644 index 0000000000..d622a5c007 --- /dev/null +++ b/boost/numeric/odeint/util/unwrap_reference.hpp @@ -0,0 +1,169 @@ +/* + [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> class unwrap_reference; +#endif + +namespace numeric { +namespace odeint { + + +#if BOOST_NUMERIC_ODEINT_CXX11 + +template<typename T> +class unwrap_reference +{ +public: + typedef typename std::remove_reference<T>::type type; +}; + +template<typename T> +class unwrap_reference< std::reference_wrapper<T> > +{ +public: + typedef typename std::remove_reference<T>::type type; +}; + +template<typename T> +class unwrap_reference< boost::reference_wrapper<T> > +{ +public: + 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 |