diff --git a/include/boost/container/detail/advanced_insert_int.hpp b/include/boost/container/detail/advanced_insert_int.hpp index be724ab..d9cba48 100644 --- a/include/boost/container/detail/advanced_insert_int.hpp +++ b/include/boost/container/detail/advanced_insert_int.hpp @@ -271,7 +271,7 @@ struct insert_emplace_proxy { BOOST_ASSERT(n ==1); (void)n; typename aligned_storage::value>::type v; - value_type *vp = static_cast(static_cast(&v)); + value_type *vp = static_cast(static_cast(v.data)); alloc_traits::construct(a, vp, ::boost::forward(get(this->args_))...); BOOST_TRY{ @@ -382,7 +382,7 @@ struct insert_emplace_proxy_arg##N\ BOOST_ASSERT(n == 1); (void)n;\ typename aligned_storage::value>::type v;\ BOOST_ASSERT((((size_type)(&v)) % alignment_of::value) == 0);\ - value_type *vp = static_cast(static_cast(&v));\ + value_type *vp = static_cast(static_cast(v.data));\ alloc_traits::construct(a, vp BOOST_MOVE_I##N BOOST_MOVE_MFWD##N);\ BOOST_TRY{\ *p = ::boost::move(*vp);\ diff --git a/include/boost/container/detail/copy_move_algo.hpp b/include/boost/container/detail/copy_move_algo.hpp index 12d1d21..cc87e4a 100644 --- a/include/boost/container/detail/copy_move_algo.hpp +++ b/include/boost/container/detail/copy_move_algo.hpp @@ -1008,7 +1008,7 @@ inline typename dtl::enable_if_c const std::size_t n_i_bytes = sizeof(value_type)*n_i; void *const large_ptr = static_cast(boost::movelib::iterator_to_raw_pointer(large_range_f)); void *const short_ptr = static_cast(boost::movelib::iterator_to_raw_pointer(short_range_f)); - void *const stora_ptr = static_cast(boost::movelib::iterator_to_raw_pointer(storage)); + void *const stora_ptr = static_cast(boost::movelib::iterator_to_raw_pointer(storage.data)); std::memcpy(stora_ptr, large_ptr, n_i_bytes); std::memcpy(large_ptr, short_ptr, n_i_bytes); std::memcpy(short_ptr, stora_ptr, n_i_bytes); @@ -1039,7 +1039,7 @@ inline typename dtl::enable_if_c std::size_t n_i_bytes = sizeof(value_type)*n_i; char *large_ptr = static_cast(static_cast(boost::movelib::iterator_to_raw_pointer(large_range_f))); char *short_ptr = static_cast(static_cast(boost::movelib::iterator_to_raw_pointer(short_range_f))); - char *stora_ptr = static_cast(static_cast(&storage)); + char *stora_ptr = static_cast(static_cast(storage.data)); std::size_t szt_times = n_i_bytes/sizeof_storage; const std::size_t szt_rem = n_i_bytes%sizeof_storage; diff --git a/include/boost/container/detail/flat_tree.hpp b/include/boost/container/detail/flat_tree.hpp index 60f3f8e..5f212e3 100644 --- a/include/boost/container/detail/flat_tree.hpp +++ b/include/boost/container/detail/flat_tree.hpp @@ -921,7 +921,7 @@ class flat_tree std::pair emplace_unique(BOOST_FWD_REF(Args)... args) { typename aligned_storage::value>::type v; - value_type &val = *static_cast(static_cast(&v)); + value_type &val = *static_cast(static_cast(v.data)); get_stored_allocator_noconst_return_t a = this->get_stored_allocator(); stored_allocator_traits::construct(a, &val, ::boost::forward(args)... ); value_destructor d(a, val); @@ -933,7 +933,7 @@ class flat_tree { //hint checked in insert_unique typename aligned_storage::value>::type v; - value_type &val = *static_cast(static_cast(&v)); + value_type &val = *static_cast(static_cast(v.data)); get_stored_allocator_noconst_return_t a = this->get_stored_allocator(); stored_allocator_traits::construct(a, &val, ::boost::forward(args)... ); value_destructor d(a, val); @@ -944,7 +944,7 @@ class flat_tree iterator emplace_equal(BOOST_FWD_REF(Args)... args) { typename aligned_storage::value>::type v; - value_type &val = *static_cast(static_cast(&v)); + value_type &val = *static_cast(static_cast(v.data)); get_stored_allocator_noconst_return_t a = this->get_stored_allocator(); stored_allocator_traits::construct(a, &val, ::boost::forward(args)... ); value_destructor d(a, val); @@ -956,7 +956,7 @@ class flat_tree { //hint checked in insert_equal typename aligned_storage::value>::type v; - value_type &val = *static_cast(static_cast(&v)); + value_type &val = *static_cast(static_cast(v.data)); get_stored_allocator_noconst_return_t a = this->get_stored_allocator(); stored_allocator_traits::construct(a, &val, ::boost::forward(args)... ); value_destructor d(a, val); @@ -993,7 +993,7 @@ class flat_tree std::pair emplace_unique(BOOST_MOVE_UREF##N)\ {\ typename aligned_storage::value>::type v;\ - value_type &val = *static_cast(static_cast(&v));\ + value_type &val = *static_cast(static_cast(v.data));\ get_stored_allocator_noconst_return_t a = this->get_stored_allocator();\ stored_allocator_traits::construct(a, &val BOOST_MOVE_I##N BOOST_MOVE_FWD##N);\ value_destructor d(a, val);\ @@ -1004,7 +1004,7 @@ class flat_tree iterator emplace_hint_unique(const_iterator hint BOOST_MOVE_I##N BOOST_MOVE_UREF##N)\ {\ typename aligned_storage::value>::type v;\ - value_type &val = *static_cast(static_cast(&v));\ + value_type &val = *static_cast(static_cast(v.data));\ get_stored_allocator_noconst_return_t a = this->get_stored_allocator();\ stored_allocator_traits::construct(a, &val BOOST_MOVE_I##N BOOST_MOVE_FWD##N);\ value_destructor d(a, val);\ @@ -1015,7 +1015,7 @@ class flat_tree iterator emplace_equal(BOOST_MOVE_UREF##N)\ {\ typename aligned_storage::value>::type v;\ - value_type &val = *static_cast(static_cast(&v));\ + value_type &val = *static_cast(static_cast(v.data));\ get_stored_allocator_noconst_return_t a = this->get_stored_allocator();\ stored_allocator_traits::construct(a, &val BOOST_MOVE_I##N BOOST_MOVE_FWD##N);\ value_destructor d(a, val);\ @@ -1026,7 +1026,7 @@ class flat_tree iterator emplace_hint_equal(const_iterator hint BOOST_MOVE_I##N BOOST_MOVE_UREF##N)\ {\ typename aligned_storage ::value>::type v;\ - value_type &val = *static_cast(static_cast(&v));\ + value_type &val = *static_cast(static_cast(v.data));\ get_stored_allocator_noconst_return_t a = this->get_stored_allocator();\ stored_allocator_traits::construct(a, &val BOOST_MOVE_I##N BOOST_MOVE_FWD##N);\ value_destructor d(a, val);\ diff --git a/include/boost/container/small_vector.hpp b/include/boost/container/small_vector.hpp index 7f8b8f6..70704d6 100644 --- a/include/boost/container/small_vector.hpp +++ b/include/boost/container/small_vector.hpp @@ -338,7 +338,7 @@ class small_vector_base pointer internal_storage() const BOOST_NOEXCEPT_OR_NOTHROW { return boost::intrusive::pointer_traits::pointer_to - (*const_cast(static_cast(static_cast(&m_storage_start)))); + (*const_cast(static_cast(static_cast(m_storage_start.data)))); } typedef vector > base_type; diff --git a/include/boost/container/static_vector.hpp b/include/boost/container/static_vector.hpp index 01216f2..b40d5c3 100644 --- a/include/boost/container/static_vector.hpp +++ b/include/boost/container/static_vector.hpp @@ -51,10 +51,10 @@ class static_storage_allocator { return *this; } BOOST_CONTAINER_FORCEINLINE T* internal_storage() const BOOST_NOEXCEPT_OR_NOTHROW - { return const_cast(static_cast(static_cast(&storage))); } + { return const_cast(static_cast(static_cast(storage.data))); } BOOST_CONTAINER_FORCEINLINE T* internal_storage() BOOST_NOEXCEPT_OR_NOTHROW - { return static_cast(static_cast(&storage)); } + { return static_cast(static_cast(storage.data)); } static const std::size_t internal_capacity = N; diff --git a/include/boost/container/string.hpp b/include/boost/container/string.hpp index 8418d39..8829fda 100644 --- a/include/boost/container/string.hpp +++ b/include/boost/container/string.hpp @@ -199,7 +199,7 @@ class basic_string_base { return s; } const long_t &long_repr() const - { return *static_cast(static_cast(&r)); } + { return *static_cast(static_cast(r.data)); } short_t &short_repr() { return s; }