From d9ec475d945d3035377a0d89ed42e382d8988891 Mon Sep 17 00:00:00 2001 From: DongHun Kwak Date: Thu, 6 Oct 2016 10:33:54 +0900 Subject: Imported Upstream version 1.60.0 Change-Id: Ie709530d6d5841088ceaba025cbe175a4ef43050 Signed-off-by: DongHun Kwak --- boost/core/demangle.hpp | 11 +++++++++-- boost/core/enable_if.hpp | 9 +++++++++ 2 files changed, 18 insertions(+), 2 deletions(-) (limited to 'boost/core') diff --git a/boost/core/demangle.hpp b/boost/core/demangle.hpp index eebd0ce0f1..44aeb8ded7 100644 --- a/boost/core/demangle.hpp +++ b/boost/core/demangle.hpp @@ -27,8 +27,15 @@ #if defined( BOOST_CORE_HAS_CXXABI_H ) # include -# include -# include +// For some archtectures (mips, mips64, x86, x86_64) cxxabi.h in Android NDK is implemented by gabi++ library +// (https://android.googlesource.com/platform/ndk/+/master/sources/cxx-stl/gabi++/), which does not implement +// abi::__cxa_demangle(). We detect this implementation by checking the include guard here. +# if defined( __GABIXX_CXXABI_H__ ) +# undef BOOST_CORE_HAS_CXXABI_H +# else +# include +# include +# endif #endif namespace boost diff --git a/boost/core/enable_if.hpp b/boost/core/enable_if.hpp index a3302b18a1..5dcef1e035 100644 --- a/boost/core/enable_if.hpp +++ b/boost/core/enable_if.hpp @@ -23,6 +23,11 @@ namespace boost { + template + struct enable_if_has_type + { + typedef R type; + }; template struct enable_if_c { @@ -80,6 +85,10 @@ namespace boost { template struct enable_if_does_not_work_on_this_compiler; + template + struct enable_if_has_type : enable_if_does_not_work_on_this_compiler + { }; + template struct enable_if_c : enable_if_does_not_work_on_this_compiler { }; -- cgit v1.2.3