12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- // (C) Copyright John Maddock 2010.
- // Use, modification and distribution are subject to 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_MATH_TUPLE_HPP_INCLUDED
- # define BOOST_MATH_TUPLE_HPP_INCLUDED
- # include <boost/config.hpp>
- # include <boost/detail/workaround.hpp>
- #if !defined(BOOST_NO_CXX11_HDR_TUPLE) && !BOOST_WORKAROUND(BOOST_GCC_VERSION, < 40500)
- #include <tuple>
- namespace boost{ namespace math{
- using ::std::tuple;
- // [6.1.3.2] Tuple creation functions
- using ::std::ignore;
- using ::std::make_tuple;
- using ::std::tie;
- using ::std::get;
- // [6.1.3.3] Tuple helper classes
- using ::std::tuple_size;
- using ::std::tuple_element;
- }}
- #elif (defined(__BORLANDC__) && (__BORLANDC__ <= 0x600)) || defined(__IBMCPP__)
- #include <boost/tuple/tuple.hpp>
- #include <boost/tuple/tuple_comparison.hpp>
- #include <boost/type_traits/integral_constant.hpp>
- namespace boost{ namespace math{
- using ::boost::tuple;
- // [6.1.3.2] Tuple creation functions
- using ::boost::tuples::ignore;
- using ::boost::make_tuple;
- using ::boost::tie;
- // [6.1.3.3] Tuple helper classes
- template <class T>
- struct tuple_size
- : public ::boost::integral_constant
- < ::std::size_t, ::boost::tuples::length<T>::value>
- {};
- template < int I, class T>
- struct tuple_element
- {
- typedef typename boost::tuples::element<I,T>::type type;
- };
- #if !BOOST_WORKAROUND(__BORLANDC__, < 0x0582)
- // [6.1.3.4] Element access
- using ::boost::get;
- #endif
- } } // namespaces
- #else
- #include <boost/fusion/include/tuple.hpp>
- #include <boost/fusion/include/std_pair.hpp>
- namespace boost{ namespace math{
- using ::boost::fusion::tuple;
- // [6.1.3.2] Tuple creation functions
- using ::boost::fusion::ignore;
- using ::boost::fusion::make_tuple;
- using ::boost::fusion::tie;
- using ::boost::fusion::get;
- // [6.1.3.3] Tuple helper classes
- using ::boost::fusion::tuple_size;
- using ::boost::fusion::tuple_element;
- }}
- #endif
- #endif
|