整理
This commit is contained in:
141
include/boost/numeric/odeint/util/unwrap_reference.hpp
Normal file
141
include/boost/numeric/odeint/util/unwrap_reference.hpp
Normal file
@@ -0,0 +1,141 @@
|
||||
/*
|
||||
[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>
|
||||
#include <functional>
|
||||
|
||||
namespace boost {
|
||||
|
||||
template<typename T> class reference_wrapper;
|
||||
template<typename T> struct unwrap_reference;
|
||||
|
||||
namespace numeric {
|
||||
namespace odeint {
|
||||
|
||||
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;
|
||||
};
|
||||
|
||||
namespace detail
|
||||
{
|
||||
|
||||
using ::std::ref;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
*
|
||||
* 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
|
||||
Reference in New Issue
Block a user