forked from boostorg/intrusive
Simplify intrusive dependencies dropping Boost.Core
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
# Copyright 2019 Mike Dev
|
||||
# Copyright 2023 Ion Gaztanaga
|
||||
# Distributed under the Boost Software License, Version 1.0.
|
||||
# See accompanying file LICENSE_1_0.txt or copy at https://www.boost.org/LICENSE_1_0.txt
|
||||
|
||||
@@ -16,7 +17,6 @@ target_link_libraries( boost_intrusive
|
||||
Boost::assert
|
||||
Boost::config
|
||||
Boost::container_hash
|
||||
Boost::core
|
||||
Boost::move
|
||||
Boost::static_assert
|
||||
)
|
||||
|
@@ -16,8 +16,8 @@
|
||||
|
||||
#include <boost/intrusive/detail/config_begin.hpp>
|
||||
#include <boost/intrusive/intrusive_fwd.hpp>
|
||||
#include <boost/intrusive/detail/workaround.hpp>
|
||||
#include <boost/intrusive/detail/algo_type.hpp>
|
||||
#include <boost/core/no_exceptions_support.hpp>
|
||||
#include <cstddef>
|
||||
|
||||
#if defined(BOOST_HAS_PRAGMA_ONCE)
|
||||
@@ -405,7 +405,7 @@ class circular_list_algorithms
|
||||
new_f = cur;
|
||||
bcur = cur;
|
||||
cur = node_traits::get_next(cur);
|
||||
BOOST_TRY{
|
||||
BOOST_INTRUSIVE_TRY{
|
||||
//Main loop
|
||||
while(cur != end){
|
||||
if(pred(cur)){ //Might throw
|
||||
@@ -426,12 +426,12 @@ class circular_list_algorithms
|
||||
}
|
||||
}
|
||||
}
|
||||
BOOST_CATCH(...){
|
||||
BOOST_INTRUSIVE_CATCH(...){
|
||||
node_traits::set_next (last_to_remove, new_f);
|
||||
node_traits::set_previous(new_f, last_to_remove);
|
||||
BOOST_RETHROW;
|
||||
BOOST_INTRUSIVE_RETHROW;
|
||||
}
|
||||
BOOST_CATCH_END
|
||||
BOOST_INTRUSIVE_CATCH_END
|
||||
node_traits::set_next(last_to_remove, new_f);
|
||||
node_traits::set_previous(new_f, last_to_remove);
|
||||
break;
|
||||
|
@@ -22,7 +22,7 @@
|
||||
#endif
|
||||
|
||||
#include <boost/config.hpp>
|
||||
#include <boost/core/no_exceptions_support.hpp>
|
||||
#include <boost/intrusive/detail/workaround.hpp>
|
||||
#include <boost/move/detail/placement_new.hpp>
|
||||
#include <boost/move/detail/force_ptr.hpp>
|
||||
|
||||
@@ -55,20 +55,20 @@ class array_initializer
|
||||
{
|
||||
char *init_buf = (char*)rawbuf;
|
||||
std::size_t i = 0;
|
||||
BOOST_TRY{
|
||||
BOOST_INTRUSIVE_TRY{
|
||||
for(; i != N; ++i){
|
||||
::new(init_buf, boost_move_new_t()) T(init);
|
||||
init_buf += sizeof(T);
|
||||
}
|
||||
}
|
||||
BOOST_CATCH(...){
|
||||
BOOST_INTRUSIVE_CATCH(...){
|
||||
while(i--){
|
||||
init_buf -= sizeof(T);
|
||||
move_detail::force_ptr<T*>(init_buf)->~T();
|
||||
}
|
||||
BOOST_RETHROW;
|
||||
BOOST_INTRUSIVE_RETHROW;
|
||||
}
|
||||
BOOST_CATCH_END
|
||||
BOOST_INTRUSIVE_CATCH_END
|
||||
}
|
||||
|
||||
operator T* ()
|
||||
|
@@ -22,9 +22,9 @@
|
||||
#endif
|
||||
|
||||
#include <boost/intrusive/intrusive_fwd.hpp>
|
||||
#include <boost/intrusive/detail/workaround.hpp>
|
||||
#include <boost/intrusive/detail/assert.hpp>
|
||||
#include <boost/intrusive/detail/algo_type.hpp>
|
||||
#include <boost/core/no_exceptions_support.hpp>
|
||||
#include <cstddef>
|
||||
|
||||
namespace boost {
|
||||
@@ -126,7 +126,7 @@ class common_slist_algorithms
|
||||
new_f = cur;
|
||||
bcur = cur;
|
||||
cur = node_traits::get_next(cur);
|
||||
BOOST_TRY{
|
||||
BOOST_INTRUSIVE_TRY{
|
||||
//Main loop
|
||||
while(cur != end){
|
||||
if(pred(cur)){ //Might throw
|
||||
@@ -145,11 +145,11 @@ class common_slist_algorithms
|
||||
}
|
||||
}
|
||||
}
|
||||
BOOST_CATCH(...){
|
||||
BOOST_INTRUSIVE_CATCH(...){
|
||||
node_traits::set_next(last_to_remove, new_f);
|
||||
BOOST_RETHROW;
|
||||
BOOST_INTRUSIVE_RETHROW;
|
||||
}
|
||||
BOOST_CATCH_END
|
||||
BOOST_INTRUSIVE_CATCH_END
|
||||
node_traits::set_next(last_to_remove, new_f);
|
||||
break;
|
||||
}
|
||||
|
@@ -55,4 +55,30 @@
|
||||
#define BOOST_INTRUSIVE_FORCEINLINE BOOST_FORCEINLINE
|
||||
#endif
|
||||
|
||||
#if !(defined BOOST_NO_EXCEPTIONS)
|
||||
# define BOOST_INTRUSIVE_TRY { try
|
||||
# define BOOST_INTRUSIVE_CATCH(x) catch(x)
|
||||
# define BOOST_INTRUSIVE_RETHROW throw;
|
||||
# define BOOST_INTRUSIVE_CATCH_END }
|
||||
#else
|
||||
# if !defined(BOOST_MSVC) || BOOST_MSVC >= 1900
|
||||
# define BOOST_INTRUSIVE_TRY { if (true)
|
||||
# define BOOST_INTRUSIVE_CATCH(x) else if (false)
|
||||
# else
|
||||
// warning C4127: conditional expression is constant
|
||||
# define BOOST_INTRUSIVE_TRY { \
|
||||
__pragma(warning(push)) \
|
||||
__pragma(warning(disable: 4127)) \
|
||||
if (true) \
|
||||
__pragma(warning(pop))
|
||||
# define BOOST_INTRUSIVE_CATCH(x) else \
|
||||
__pragma(warning(push)) \
|
||||
__pragma(warning(disable: 4127)) \
|
||||
if (false) \
|
||||
__pragma(warning(pop))
|
||||
# endif
|
||||
# define BOOST_INTRUSIVE_RETHROW
|
||||
# define BOOST_INTRUSIVE_CATCH_END }
|
||||
#endif
|
||||
|
||||
#endif //#ifndef BOOST_INTRUSIVE_DETAIL_WORKAROUND_HPP
|
||||
|
Reference in New Issue
Block a user