forked from boostorg/type_index
Removed applied patches
This commit is contained in:
@ -1,131 +0,0 @@
|
||||
From b59340efc30219492b095d2cfcdb8183b3e35b69 Mon Sep 17 00:00:00 2001
|
||||
From: Antony Polukhin <antoshkka@gmail.com>
|
||||
Date: Thu, 20 Feb 2014 17:06:44 +0400
|
||||
Subject: [PATCH 1/2] Boost.Any not can work without RTTI support.
|
||||
|
||||
---
|
||||
test/Jamfile.v2 | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/test/Jamfile.v2 b/test/Jamfile.v2
|
||||
index cd167dc..76f9e5a 100644
|
||||
--- a/test/Jamfile.v2
|
||||
+++ b/test/Jamfile.v2
|
||||
@@ -9,6 +9,7 @@
|
||||
test-suite any :
|
||||
[ run any_test.cpp ]
|
||||
[ run any_test_rv.cpp ]
|
||||
+ [ run any_test_rv.cpp : : : <rtti>off : any_test_rv_no_rtti ]
|
||||
[ compile-fail any_cast_cv_failed.cpp ]
|
||||
[ compile-fail any_test_temporary_to_ref_failed.cpp ]
|
||||
[ compile-fail any_test_cv_to_rv_failed.cpp ]
|
||||
--
|
||||
1.8.5.3
|
||||
|
||||
|
||||
From 62b9b01713fc50355f82e892bc0fd5618ce5c648 Mon Sep 17 00:00:00 2001
|
||||
From: Antony Polukhin <antoshkka@gmail.com>
|
||||
Date: Thu, 20 Feb 2014 17:30:42 +0400
|
||||
Subject: [PATCH 2/2] Boost.Any not can work without RTTI support.
|
||||
|
||||
---
|
||||
include/boost/any.hpp | 37 +++++++++++++------------------------
|
||||
1 file changed, 13 insertions(+), 24 deletions(-)
|
||||
|
||||
diff --git a/include/boost/any.hpp b/include/boost/any.hpp
|
||||
index a63fea4..bda00a2 100644
|
||||
--- a/include/boost/any.hpp
|
||||
+++ b/include/boost/any.hpp
|
||||
@@ -15,9 +15,9 @@
|
||||
// when: July 2001, April 2013 - May 2013
|
||||
|
||||
#include <algorithm>
|
||||
-#include <typeinfo>
|
||||
|
||||
#include "boost/config.hpp"
|
||||
+#include <boost/type_index.hpp>
|
||||
#include <boost/type_traits/remove_reference.hpp>
|
||||
#include <boost/type_traits/decay.hpp>
|
||||
#include <boost/type_traits/add_reference.hpp>
|
||||
@@ -29,17 +29,6 @@
|
||||
#include <boost/type_traits/is_same.hpp>
|
||||
#include <boost/type_traits/is_const.hpp>
|
||||
|
||||
-// See boost/python/type_id.hpp
|
||||
-// TODO: add BOOST_TYPEID_COMPARE_BY_NAME to config.hpp
|
||||
-# if defined(__GNUC__) \
|
||||
- || defined(_AIX) \
|
||||
- || ( defined(__sgi) && defined(__host_mips)) \
|
||||
- || (defined(__hpux) && defined(__HP_aCC)) \
|
||||
- || (defined(linux) && defined(__INTEL_COMPILER) && defined(__ICC))
|
||||
-# define BOOST_AUX_ANY_TYPE_ID_NAME
|
||||
-#include <cstring>
|
||||
-# endif
|
||||
-
|
||||
namespace boost
|
||||
{
|
||||
class any
|
||||
@@ -144,9 +133,9 @@ namespace boost
|
||||
any().swap(*this);
|
||||
}
|
||||
|
||||
- const std::type_info & type() const BOOST_NOEXCEPT
|
||||
+ const boost::typeind::type_info& type() const BOOST_NOEXCEPT
|
||||
{
|
||||
- return content ? content->type() : typeid(void);
|
||||
+ return content ? content->type() : boost::typeind::type_id<void>().type_info();
|
||||
}
|
||||
|
||||
#ifndef BOOST_NO_MEMBER_TEMPLATE_FRIENDS
|
||||
@@ -165,7 +154,7 @@ namespace boost
|
||||
|
||||
public: // queries
|
||||
|
||||
- virtual const std::type_info & type() const BOOST_NOEXCEPT = 0;
|
||||
+ virtual const boost::typeind::type_info& type() const BOOST_NOEXCEPT = 0;
|
||||
|
||||
virtual placeholder * clone() const = 0;
|
||||
|
||||
@@ -189,9 +178,9 @@ namespace boost
|
||||
#endif
|
||||
public: // queries
|
||||
|
||||
- virtual const std::type_info & type() const BOOST_NOEXCEPT
|
||||
+ virtual const boost::typeind::type_info& type() const BOOST_NOEXCEPT
|
||||
{
|
||||
- return typeid(ValueType);
|
||||
+ return boost::typeind::type_id<ValueType>().type_info();
|
||||
}
|
||||
|
||||
virtual placeholder * clone() const
|
||||
@@ -232,7 +221,12 @@ namespace boost
|
||||
lhs.swap(rhs);
|
||||
}
|
||||
|
||||
- class BOOST_SYMBOL_VISIBLE bad_any_cast : public std::bad_cast
|
||||
+ class BOOST_SYMBOL_VISIBLE bad_any_cast :
|
||||
+#ifndef BOOST_NO_RTTI
|
||||
+ public std::bad_cast
|
||||
+#else
|
||||
+ public std::exception
|
||||
+#endif
|
||||
{
|
||||
public:
|
||||
virtual const char * what() const BOOST_NOEXCEPT_OR_NOTHROW
|
||||
@@ -245,12 +239,7 @@ namespace boost
|
||||
template<typename ValueType>
|
||||
ValueType * any_cast(any * operand) BOOST_NOEXCEPT
|
||||
{
|
||||
- return operand &&
|
||||
-#ifdef BOOST_AUX_ANY_TYPE_ID_NAME
|
||||
- std::strcmp(operand->type().name(), typeid(ValueType).name()) == 0
|
||||
-#else
|
||||
- operand->type() == typeid(ValueType)
|
||||
-#endif
|
||||
+ return operand && operand->type() == boost::typeind::type_id<ValueType>()
|
||||
? &static_cast<any::holder<ValueType> *>(operand->content)->held
|
||||
: 0;
|
||||
}
|
||||
--
|
||||
1.8.5.3
|
||||
|
@ -1,60 +0,0 @@
|
||||
From 6f71069e85fab36d9b95d53ddb6d80b8d1bdb6b0 Mon Sep 17 00:00:00 2001
|
||||
From: Antony Polukhin <antoshkka@gmail.com>
|
||||
Date: Thu, 20 Feb 2014 18:33:20 +0400
|
||||
Subject: [PATCH] Use TypeIndex in Boost.Function to remove duplicate code and
|
||||
improve code performance
|
||||
|
||||
---
|
||||
include/boost/function/function_base.hpp | 22 +---------------------
|
||||
test/Jamfile.v2 | 2 ++
|
||||
2 files changed, 3 insertions(+), 21 deletions(-)
|
||||
|
||||
diff --git a/include/boost/function/function_base.hpp b/include/boost/function/function_base.hpp
|
||||
index f3663d7..8fd2c8d 100644
|
||||
--- a/include/boost/function/function_base.hpp
|
||||
+++ b/include/boost/function/function_base.hpp
|
||||
@@ -44,27 +44,7 @@
|
||||
# pragma warning( disable : 4127 ) // "conditional expression is constant"
|
||||
#endif
|
||||
|
||||
-// Define BOOST_FUNCTION_STD_NS to the namespace that contains type_info.
|
||||
-#ifdef BOOST_NO_STD_TYPEINFO
|
||||
-// Embedded VC++ does not have type_info in namespace std
|
||||
-# define BOOST_FUNCTION_STD_NS
|
||||
-#else
|
||||
-# define BOOST_FUNCTION_STD_NS std
|
||||
-#endif
|
||||
-
|
||||
-// Borrowed from Boost.Python library: determines the cases where we
|
||||
-// need to use std::type_info::name to compare instead of operator==.
|
||||
-#if defined( BOOST_NO_TYPEID )
|
||||
-# define BOOST_FUNCTION_COMPARE_TYPE_ID(X,Y) ((X)==(Y))
|
||||
-#elif defined(__GNUC__) \
|
||||
- || defined(_AIX) \
|
||||
- || ( defined(__sgi) && defined(__host_mips))
|
||||
-# include <cstring>
|
||||
-# define BOOST_FUNCTION_COMPARE_TYPE_ID(X,Y) \
|
||||
- (std::strcmp((X).name(),(Y).name()) == 0)
|
||||
-# else
|
||||
-# define BOOST_FUNCTION_COMPARE_TYPE_ID(X,Y) ((X)==(Y))
|
||||
-#endif
|
||||
+#define BOOST_FUNCTION_COMPARE_TYPE_ID(X,Y) (boost::typeind::type_index((X))==(Y))
|
||||
|
||||
#if defined(__ICL) && __ICL <= 600 || defined(__MWERKS__) && __MWERKS__ < 0x2406 && !defined(BOOST_STRICT_CONFIG)
|
||||
# define BOOST_FUNCTION_TARGET_FIX(x) x
|
||||
diff --git a/test/Jamfile.v2 b/test/Jamfile.v2
|
||||
index 68895fa..12a00db 100644
|
||||
--- a/test/Jamfile.v2
|
||||
+++ b/test/Jamfile.v2
|
||||
@@ -21,6 +21,8 @@ import testing ;
|
||||
:
|
||||
[ run libs/function/test/function_test.cpp : : : : lib_function_test ]
|
||||
|
||||
+ [ run libs/function/test/function_test.cpp : : : <rtti>off : lib_function_test_no_rtti ]
|
||||
+
|
||||
[ run libs/function/test/function_n_test.cpp : : : : ]
|
||||
|
||||
[ run libs/function/test/allocator_test.cpp ../../../libs/test/build//boost_test_exec_monitor : : : : ]
|
||||
--
|
||||
1.8.5.3
|
||||
|
@ -1,70 +0,0 @@
|
||||
From 21f31f2ceb6d5669ca4e0bcc7b62cf1836eb7002 Mon Sep 17 00:00:00 2001
|
||||
From: Antony Polukhin <antoshkka@gmail.com>
|
||||
Date: Thu, 20 Feb 2014 17:26:24 +0400
|
||||
Subject: [PATCH] Boost.Variant not can work without RTTI support.
|
||||
|
||||
---
|
||||
include/boost/variant/variant.hpp | 19 +++++--------------
|
||||
1 file changed, 5 insertions(+), 14 deletions(-)
|
||||
|
||||
diff --git a/include/boost/variant/variant.hpp b/include/boost/variant/variant.hpp
|
||||
index 46c3ae3..8604ba9 100644
|
||||
--- a/include/boost/variant/variant.hpp
|
||||
+++ b/include/boost/variant/variant.hpp
|
||||
@@ -18,9 +18,7 @@
|
||||
#include <cstddef> // for std::size_t
|
||||
#include <new> // for placement new
|
||||
|
||||
-#if !defined(BOOST_NO_TYPEID)
|
||||
-#include <typeinfo> // for typeid, std::type_info
|
||||
-#endif // BOOST_NO_TYPEID
|
||||
+#include "boost/type_index.hpp"
|
||||
|
||||
#include "boost/variant/detail/config.hpp"
|
||||
#include "boost/mpl/aux_/value_wknd.hpp"
|
||||
@@ -829,24 +827,19 @@ private:
|
||||
//
|
||||
// Generic static visitor that performs a typeid on the value it visits.
|
||||
//
|
||||
-
|
||||
-#if !defined(BOOST_NO_TYPEID)
|
||||
-
|
||||
class reflect
|
||||
- : public static_visitor<const std::type_info&>
|
||||
+ : public static_visitor<const boost::typeind::type_info&>
|
||||
{
|
||||
public: // visitor interfaces
|
||||
|
||||
template <typename T>
|
||||
- const std::type_info& operator()(const T&) const BOOST_NOEXCEPT
|
||||
+ const boost::typeind::type_info& operator()(const T&) const BOOST_NOEXCEPT
|
||||
{
|
||||
- return typeid(T);
|
||||
+ return boost::typeind::type_id<T>().type_info();
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
-#endif // BOOST_NO_TYPEID
|
||||
-
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// (detail) class comparer
|
||||
//
|
||||
@@ -2155,13 +2148,11 @@ public: // queries
|
||||
return false;
|
||||
}
|
||||
|
||||
-#if !defined(BOOST_NO_TYPEID)
|
||||
- const std::type_info& type() const
|
||||
+ const boost::typeind::type_info& type() const
|
||||
{
|
||||
detail::variant::reflect visitor;
|
||||
return this->apply_visitor(visitor);
|
||||
}
|
||||
-#endif
|
||||
|
||||
public: // prevent comparison with foreign types
|
||||
|
||||
--
|
||||
1.8.5.3
|
||||
|
Reference in New Issue
Block a user