diff options
Diffstat (limited to 'boost/numeric/odeint/util/bind.hpp')
-rw-r--r-- | boost/numeric/odeint/util/bind.hpp | 98 |
1 files changed, 98 insertions, 0 deletions
diff --git a/boost/numeric/odeint/util/bind.hpp b/boost/numeric/odeint/util/bind.hpp new file mode 100644 index 0000000000..966fd0397b --- /dev/null +++ b/boost/numeric/odeint/util/bind.hpp @@ -0,0 +1,98 @@ +/* + * [begin_description] + * Boost bind pull the placeholders, _1, _2, ... into global + * namespace. This can conflict with the C++03 TR1 and C++11 + * std::placeholders. This header provides a workaround for + * this problem. + * [end_description] + * + * Copyright 2012 Christoph Koke + * Copyright 2012 Karsten Ahnert + * + * 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_BIND_HPP_INCLUDED +#define BOOST_NUMERIC_ODEINT_UTIL_BIND_HPP_INCLUDED + + +#include <boost/numeric/odeint/config.hpp> + + +#if BOOST_NUMERIC_ODEINT_CXX11 + #include <functional> +#else +#define BOOST_BIND_NO_PLACEHOLDERS +#include <boost/bind.hpp> +#endif + +namespace boost { +namespace numeric { +namespace odeint { +namespace detail { + +#if BOOST_NUMERIC_ODEINT_CXX11 + +using ::std::bind; +using namespace ::std::placeholders; + + +#else + +using ::boost::bind; +boost::arg<1> _1; +boost::arg<2> _2; +// using ::boost::bind; +// using ::_1; +// using ::_2; + +#endif + +} +} +} +} + + + + + +/* + +// the following is the suggested way. Unfortunately it does not work with all compilers. + +#ifdef BOOST_NO_CXX11_HDR_FUNCTIONAL +#include <boost/bind.hpp> +#else +#include <functional> +#endif + + +namespace boost { +namespace numeric { +namespace odeint { +namespace detail { + + +#ifdef BOOST_NO_CXX11_HDR_FUNCTIONAL + +using ::boost::bind; +using ::_1; +using ::_2; + +#else + +using ::std::bind; +using namespace ::std::placeholders; + +#endif + + +} +} +} +}*/ + +#endif // BOOST_NUMERIC_ODEINT_UTIL_BIND_HPP_INCLUDED |