summaryrefslogtreecommitdiffstats
path: root/libcxx/test/support
diff options
context:
space:
mode:
authorEric Fiselier <eric@efcs.ca>2016-06-27 00:55:25 +0000
committerEric Fiselier <eric@efcs.ca>2016-06-27 00:55:25 +0000
commit8b7faa68716d8c65ffad76b2594684a41aeb4c62 (patch)
treeb95da3b03ed0a67064720ee3e83103a276949f65 /libcxx/test/support
parent9372d8bc613b2ec6fa2dbaa63d84ecc1ffaf70fc (diff)
downloadbcm5719-llvm-8b7faa68716d8c65ffad76b2594684a41aeb4c62.tar.gz
bcm5719-llvm-8b7faa68716d8c65ffad76b2594684a41aeb4c62.zip
Implement p0337r0. Delete operator= for polymorphic_allocator.
llvm-svn: 273838
Diffstat (limited to 'libcxx/test/support')
-rw-r--r--libcxx/test/support/uses_alloc_types.hpp22
1 files changed, 11 insertions, 11 deletions
diff --git a/libcxx/test/support/uses_alloc_types.hpp b/libcxx/test/support/uses_alloc_types.hpp
index f68b842a708..a88453c6c03 100644
--- a/libcxx/test/support/uses_alloc_types.hpp
+++ b/libcxx/test/support/uses_alloc_types.hpp
@@ -160,26 +160,26 @@ protected:
allocator(a)
{}
- template <class ...Args>
+ template <class ...Args, class ArgsIDL = detail::TakeNArgs<sizeof...(Args) - 1, Args&&...>>
UsesAllocatorTestBase(AllocLastTag, Args&&... args)
- : args_id(nullptr),
- constructor_called(UA_AllocLast)
+ : args_id(&makeTypeID<typename ArgsIDL::type>()),
+ constructor_called(UA_AllocLast),
+ allocator(getAllocatorFromPack(
+ typename ArgsIDL::type{},
+ std::forward<Args>(args)...))
{
- typedef typename detail::TakeNArgs<sizeof...(Args) - 1, Args&&...>::type
- ArgIDL;
- args_id = &makeTypeID<ArgIDL>();
- getAllocatorFromPack(ArgIDL{}, std::forward<Args>(args)...);
}
private:
template <class ...LArgs, class ...Args>
- void getAllocatorFromPack(ArgumentListID<LArgs...>, Args&&... args) {
- getAllocatorFromPackImp<LArgs const&...>(args...);
+ static CtorAlloc const& getAllocatorFromPack(ArgumentListID<LArgs...>, Args&&... args) {
+ return getAllocatorFromPackImp<LArgs const&...>(args...);
}
template <class ...LArgs>
- void getAllocatorFromPackImp(typename detail::Identity<LArgs>::type..., CtorAlloc const& alloc) {
- allocator = alloc;
+ static CtorAlloc const& getAllocatorFromPackImp(
+ typename detail::Identity<LArgs>::type..., CtorAlloc const& alloc) {
+ return alloc;
}
const TypeID* args_id;
OpenPOWER on IntegriCloud