diff --git a/include/boost/bind/bind.hpp b/include/boost/bind/bind.hpp index ae49c4e..13a94a3 100644 --- a/include/boost/bind/bind.hpp +++ b/include/boost/bind/bind.hpp @@ -22,7 +22,6 @@ // #include -#include #include #include #include @@ -31,8 +30,9 @@ #include #include #include +#include #include -#include +#include #if !defined( BOOST_NO_CXX11_RVALUE_REFERENCES ) #include // std::forward diff --git a/include/boost/bind/bind_mf_cc.hpp b/include/boost/bind/bind_mf_cc.hpp index bbfd371..5a1610b 100644 --- a/include/boost/bind/bind_mf_cc.hpp +++ b/include/boost/bind/bind_mf_cc.hpp @@ -36,7 +36,7 @@ template - typename boost::enable_if_c::value, + typename boost::enable_if_c::value, _bi::bind_t, typename _bi::list_av_1::type> >::type BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) () BOOST_BIND_MF_NOEXCEPT, A1 a1) { @@ -47,7 +47,7 @@ template - typename boost::enable_if_c::value, + typename boost::enable_if_c::value, _bi::bind_t, typename _bi::list_av_1::type> >::type BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) () const BOOST_BIND_MF_NOEXCEPT, A1 a1) { @@ -83,7 +83,7 @@ template - typename boost::enable_if_c::value, + typename boost::enable_if_c::value, _bi::bind_t, typename _bi::list_av_2::type> >::type BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1) BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2) { @@ -95,7 +95,7 @@ template - typename boost::enable_if_c::value, + typename boost::enable_if_c::value, _bi::bind_t, typename _bi::list_av_2::type> >::type BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1) const BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2) { @@ -131,7 +131,7 @@ template - typename boost::enable_if_c::value, + typename boost::enable_if_c::value, _bi::bind_t, typename _bi::list_av_3::type> >::type BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2) BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3) { @@ -143,7 +143,7 @@ template - typename boost::enable_if_c::value, + typename boost::enable_if_c::value, _bi::bind_t, typename _bi::list_av_3::type> >::type BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2) const BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3) { @@ -179,7 +179,7 @@ template - typename boost::enable_if_c::value, + typename boost::enable_if_c::value, _bi::bind_t, typename _bi::list_av_4::type> >::type BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3) BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4) { @@ -191,7 +191,7 @@ template - typename boost::enable_if_c::value, + typename boost::enable_if_c::value, _bi::bind_t, typename _bi::list_av_4::type> >::type BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3) const BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4) { @@ -227,7 +227,7 @@ template - typename boost::enable_if_c::value, + typename boost::enable_if_c::value, _bi::bind_t, typename _bi::list_av_5::type> >::type BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4) BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) { @@ -239,7 +239,7 @@ template - typename boost::enable_if_c::value, + typename boost::enable_if_c::value, _bi::bind_t, typename _bi::list_av_5::type> >::type BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4) const BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) { @@ -275,7 +275,7 @@ template - typename boost::enable_if_c::value, + typename boost::enable_if_c::value, _bi::bind_t, typename _bi::list_av_6::type> >::type BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5) BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) { @@ -287,7 +287,7 @@ template - typename boost::enable_if_c::value, + typename boost::enable_if_c::value, _bi::bind_t, typename _bi::list_av_6::type> >::type BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5) const BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) { @@ -323,7 +323,7 @@ template - typename boost::enable_if_c::value, + typename boost::enable_if_c::value, _bi::bind_t, typename _bi::list_av_7::type> >::type BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6) BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) { @@ -335,7 +335,7 @@ template - typename boost::enable_if_c::value, + typename boost::enable_if_c::value, _bi::bind_t, typename _bi::list_av_7::type> >::type BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6) const BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) { @@ -371,7 +371,7 @@ template - typename boost::enable_if_c::value, + typename boost::enable_if_c::value, _bi::bind_t, typename _bi::list_av_8::type> >::type BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6, B7) BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) { @@ -383,7 +383,7 @@ template - typename boost::enable_if_c::value, + typename boost::enable_if_c::value, _bi::bind_t, typename _bi::list_av_8::type> >::type BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6, B7) const BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) { @@ -419,7 +419,7 @@ template - typename boost::enable_if_c::value, + typename boost::enable_if_c::value, _bi::bind_t, typename _bi::list_av_9::type> >::type BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6, B7, B8) BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9) { @@ -431,7 +431,7 @@ template - typename boost::enable_if_c::value, + typename boost::enable_if_c::value, _bi::bind_t, typename _bi::list_av_9::type> >::type BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6, B7, B8) const BOOST_BIND_MF_NOEXCEPT, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9) { diff --git a/include/boost/bind/detail/is_same.hpp b/include/boost/bind/detail/is_same.hpp new file mode 100644 index 0000000..995b39f --- /dev/null +++ b/include/boost/bind/detail/is_same.hpp @@ -0,0 +1,36 @@ +#ifndef BOOST_BIND_DETAIL_IS_SAME_HPP_INCLUDED +#define BOOST_BIND_DETAIL_IS_SAME_HPP_INCLUDED + +// is_same::value is true when T1 == T2 +// +// Copyright 2014 Peter Dimov +// +// 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 + +#include + +#if defined(BOOST_HAS_PRAGMA_ONCE) +# pragma once +#endif + +namespace boost +{ +namespace _bi +{ + +template< class T1, class T2 > struct is_same +{ + BOOST_STATIC_CONSTANT( bool, value = false ); +}; + +template< class T > struct is_same< T, T > +{ + BOOST_STATIC_CONSTANT( bool, value = true ); +}; + +} // namespace _bi +} // namespace boost + +#endif // #ifndef BOOST_BIND_DETAIL_IS_SAME_HPP_INCLUDED diff --git a/include/boost/bind/detail/result_traits.hpp b/include/boost/bind/detail/result_traits.hpp index f8de9cd..d57d9fd 100644 --- a/include/boost/bind/detail/result_traits.hpp +++ b/include/boost/bind/detail/result_traits.hpp @@ -22,6 +22,7 @@ // #include +#include #if BOOST_CXX_VERSION >= 201700L #include diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 1f8c370..3a76d0a 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -6,6 +6,6 @@ include(BoostTestJamfile OPTIONAL RESULT_VARIABLE HAVE_BOOST_TEST) if(HAVE_BOOST_TEST) -boost_test_jamfile(FILE Jamfile.v2 LINK_LIBRARIES Boost::bind Boost::core Boost::function Boost::smart_ptr) +boost_test_jamfile(FILE Jamfile.v2 LINK_LIBRARIES Boost::bind Boost::core Boost::function Boost::smart_ptr Boost::type_traits) endif() diff --git a/test/apply_test2.cpp b/test/apply_test2.cpp index 0a39ca1..1cc6371 100644 --- a/test/apply_test2.cpp +++ b/test/apply_test2.cpp @@ -4,12 +4,12 @@ #include #include -#include +#include int main() { - BOOST_TEST_TRAIT_TRUE((boost::core::is_same::result_type>)); - BOOST_TEST_TRAIT_TRUE((boost::core::is_same::result_type>)); + BOOST_TEST_TRAIT_TRUE((boost::is_same::result_type>)); + BOOST_TEST_TRAIT_TRUE((boost::is_same::result_type>)); return boost::report_errors(); } diff --git a/test/protect_test2.cpp b/test/protect_test2.cpp index 8da8405..aded09d 100644 --- a/test/protect_test2.cpp +++ b/test/protect_test2.cpp @@ -6,11 +6,11 @@ #include #include -#include +#include template void test( F ) { - BOOST_TEST_TRAIT_TRUE((boost::core::is_same)); + BOOST_TEST_TRAIT_TRUE((boost::is_same)); } struct X @@ -29,7 +29,7 @@ template struct inherit: T, U template void test2( F ) { // test that F doesn't have ::result_type - BOOST_TEST_TRAIT_TRUE((boost::core::is_same::result_type, typename X::result_type>)); + BOOST_TEST_TRAIT_TRUE((boost::is_same::result_type, typename X::result_type>)); } int main()