mirror of
https://github.com/boostorg/container.git
synced 2025-08-02 14:04:26 +02:00
Fixes #160 ("Usage of uses_allocator needs a remove_cvref_t")
This commit is contained in:
@@ -1342,7 +1342,9 @@ use [*Boost.Container]? There are several reasons for that:
|
|||||||
|
|
||||||
* New [classref boost::container::devector devector] container.
|
* New [classref boost::container::devector devector] container.
|
||||||
* Fixed bugs/issues:
|
* Fixed bugs/issues:
|
||||||
* [@https://github.com/boostorg/container/issues/157 GitHub #157: ['"Add missing include"]].
|
* [@https://github.com/boostorg/container/pull/157 GitHub #157: ['"Add missing include"]].
|
||||||
|
* [@https://github.com/boostorg/container/issues/160 GitHub #160: ['"Usage of uses_allocator needs a remove_cvref_t"]].
|
||||||
|
* [@https://github.com/boostorg/container/issues/161 GitHub #161: ['"polymorphic_allocator(memory_resource*) non-standard extension causes headache"]].
|
||||||
|
|
||||||
[endsect]
|
[endsect]
|
||||||
|
|
||||||
|
@@ -113,7 +113,7 @@ template < typename ConstructAlloc
|
|||||||
BOOST_CONTAINER_FORCEINLINE typename dtl::enable_if_and
|
BOOST_CONTAINER_FORCEINLINE typename dtl::enable_if_and
|
||||||
< void
|
< void
|
||||||
, dtl::is_not_pair<T>
|
, dtl::is_not_pair<T>
|
||||||
, dtl::not_< uses_allocator<T, ArgAlloc> >
|
, dtl::not_< uses_allocator<T, typename remove_cvref<ArgAlloc>::type > >
|
||||||
>::type dispatch_uses_allocator
|
>::type dispatch_uses_allocator
|
||||||
( ConstructAlloc & construct_alloc, BOOST_FWD_REF(ArgAlloc) arg_alloc, T* p, BOOST_FWD_REF(Args)...args)
|
( ConstructAlloc & construct_alloc, BOOST_FWD_REF(ArgAlloc) arg_alloc, T* p, BOOST_FWD_REF(Args)...args)
|
||||||
{
|
{
|
||||||
@@ -130,7 +130,7 @@ template < typename ConstructAlloc
|
|||||||
BOOST_CONTAINER_FORCEINLINE typename dtl::enable_if_and
|
BOOST_CONTAINER_FORCEINLINE typename dtl::enable_if_and
|
||||||
< void
|
< void
|
||||||
, dtl::is_not_pair<T>
|
, dtl::is_not_pair<T>
|
||||||
, uses_allocator<T, ArgAlloc>
|
, uses_allocator<T, typename remove_cvref<ArgAlloc>::type>
|
||||||
, is_constructible_with_allocator_prefix<T, ArgAlloc, Args...>
|
, is_constructible_with_allocator_prefix<T, ArgAlloc, Args...>
|
||||||
>::type dispatch_uses_allocator
|
>::type dispatch_uses_allocator
|
||||||
( ConstructAlloc& construct_alloc, BOOST_FWD_REF(ArgAlloc) arg_alloc, T* p, BOOST_FWD_REF(Args) ...args)
|
( ConstructAlloc& construct_alloc, BOOST_FWD_REF(ArgAlloc) arg_alloc, T* p, BOOST_FWD_REF(Args) ...args)
|
||||||
@@ -149,7 +149,7 @@ template < typename ConstructAlloc
|
|||||||
BOOST_CONTAINER_FORCEINLINE typename dtl::enable_if_and
|
BOOST_CONTAINER_FORCEINLINE typename dtl::enable_if_and
|
||||||
< void
|
< void
|
||||||
, dtl::is_not_pair<T>
|
, dtl::is_not_pair<T>
|
||||||
, uses_allocator<T, ArgAlloc>
|
, uses_allocator<T, typename remove_cvref<ArgAlloc>::type>
|
||||||
, dtl::not_<is_constructible_with_allocator_prefix<T, ArgAlloc, Args...> >
|
, dtl::not_<is_constructible_with_allocator_prefix<T, ArgAlloc, Args...> >
|
||||||
>::type dispatch_uses_allocator
|
>::type dispatch_uses_allocator
|
||||||
( ConstructAlloc& construct_alloc, BOOST_FWD_REF(ArgAlloc) arg_alloc, T* p, BOOST_FWD_REF(Args)...args)
|
( ConstructAlloc& construct_alloc, BOOST_FWD_REF(ArgAlloc) arg_alloc, T* p, BOOST_FWD_REF(Args)...args)
|
||||||
@@ -165,7 +165,7 @@ BOOST_CONTAINER_FORCEINLINE typename dtl::enable_if_and
|
|||||||
BOOST_CONTAINER_FORCEINLINE typename dtl::enable_if_and\
|
BOOST_CONTAINER_FORCEINLINE typename dtl::enable_if_and\
|
||||||
< void\
|
< void\
|
||||||
, dtl::is_not_pair<T>\
|
, dtl::is_not_pair<T>\
|
||||||
, dtl::not_<uses_allocator<T, ArgAlloc> >\
|
, dtl::not_<uses_allocator<T, typename remove_cvref<ArgAlloc>::type> >\
|
||||||
>::type\
|
>::type\
|
||||||
dispatch_uses_allocator\
|
dispatch_uses_allocator\
|
||||||
(ConstructAlloc &construct_alloc, BOOST_FWD_REF(ArgAlloc) arg_alloc, T* p BOOST_MOVE_I##N BOOST_MOVE_UREF##N)\
|
(ConstructAlloc &construct_alloc, BOOST_FWD_REF(ArgAlloc) arg_alloc, T* p BOOST_MOVE_I##N BOOST_MOVE_UREF##N)\
|
||||||
@@ -182,7 +182,7 @@ BOOST_MOVE_ITERATE_0TO9(BOOST_CONTAINER_SCOPED_ALLOCATOR_DISPATCH_USES_ALLOCATOR
|
|||||||
BOOST_CONTAINER_FORCEINLINE typename dtl::enable_if_and\
|
BOOST_CONTAINER_FORCEINLINE typename dtl::enable_if_and\
|
||||||
< void\
|
< void\
|
||||||
, dtl::is_not_pair<T>\
|
, dtl::is_not_pair<T>\
|
||||||
, uses_allocator<T, ArgAlloc>\
|
, uses_allocator<T, typename remove_cvref<ArgAlloc>::type>\
|
||||||
, is_constructible_with_allocator_prefix<T, ArgAlloc BOOST_MOVE_I##N BOOST_MOVE_TARG##N>\
|
, is_constructible_with_allocator_prefix<T, ArgAlloc BOOST_MOVE_I##N BOOST_MOVE_TARG##N>\
|
||||||
>::type\
|
>::type\
|
||||||
dispatch_uses_allocator\
|
dispatch_uses_allocator\
|
||||||
@@ -200,7 +200,7 @@ BOOST_MOVE_ITERATE_0TO9(BOOST_CONTAINER_SCOPED_ALLOCATOR_DISPATCH_USES_ALLOCATOR
|
|||||||
BOOST_CONTAINER_FORCEINLINE typename dtl::enable_if_and\
|
BOOST_CONTAINER_FORCEINLINE typename dtl::enable_if_and\
|
||||||
< void\
|
< void\
|
||||||
, dtl::is_not_pair<T>\
|
, dtl::is_not_pair<T>\
|
||||||
, uses_allocator<T, ArgAlloc>\
|
, uses_allocator<T, typename remove_cvref<ArgAlloc>::type>\
|
||||||
, dtl::not_<is_constructible_with_allocator_prefix<T, ArgAlloc BOOST_MOVE_I##N BOOST_MOVE_TARG##N> >\
|
, dtl::not_<is_constructible_with_allocator_prefix<T, ArgAlloc BOOST_MOVE_I##N BOOST_MOVE_TARG##N> >\
|
||||||
>::type\
|
>::type\
|
||||||
dispatch_uses_allocator\
|
dispatch_uses_allocator\
|
||||||
|
@@ -40,6 +40,7 @@ using ::boost::move_detail::add_const;
|
|||||||
using ::boost::move_detail::add_const_reference;
|
using ::boost::move_detail::add_const_reference;
|
||||||
using ::boost::move_detail::remove_const;
|
using ::boost::move_detail::remove_const;
|
||||||
using ::boost::move_detail::remove_reference;
|
using ::boost::move_detail::remove_reference;
|
||||||
|
using ::boost::move_detail::remove_cvref;
|
||||||
using ::boost::move_detail::make_unsigned;
|
using ::boost::move_detail::make_unsigned;
|
||||||
using ::boost::move_detail::is_floating_point;
|
using ::boost::move_detail::is_floating_point;
|
||||||
using ::boost::move_detail::is_integral;
|
using ::boost::move_detail::is_integral;
|
||||||
|
@@ -21,7 +21,7 @@ struct uses_allocator_and_not_convertible_to_int
|
|||||||
|
|
||||||
struct uses_allocator_and_convertible_to_int
|
struct uses_allocator_and_convertible_to_int
|
||||||
{
|
{
|
||||||
typedef char allocator_type;
|
typedef long allocator_type;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct uses_erased_type_allocator
|
struct uses_erased_type_allocator
|
||||||
|
Reference in New Issue
Block a user