diff options
Diffstat (limited to 'test/std/containers/container.adaptors/priority.queue/priqueue.cons.alloc/ctor_comp_alloc.pass.cpp')
-rw-r--r-- | test/std/containers/container.adaptors/priority.queue/priqueue.cons.alloc/ctor_comp_alloc.pass.cpp | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/test/std/containers/container.adaptors/priority.queue/priqueue.cons.alloc/ctor_comp_alloc.pass.cpp b/test/std/containers/container.adaptors/priority.queue/priqueue.cons.alloc/ctor_comp_alloc.pass.cpp new file mode 100644 index 000000000000..4d99fc14728b --- /dev/null +++ b/test/std/containers/container.adaptors/priority.queue/priqueue.cons.alloc/ctor_comp_alloc.pass.cpp @@ -0,0 +1,48 @@ +//===----------------------------------------------------------------------===// +// +// The LLVM Compiler Infrastructure +// +// This file is dual licensed under the MIT and the University of Illinois Open +// Source Licenses. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +// <queue> + +// template <class Alloc> +// priority_queue(const Compare& comp, const Alloc& a); + +#include <queue> +#include <cassert> + +#include "test_allocator.h" + +template <class T> +struct test + : public std::priority_queue<T, std::vector<T, test_allocator<T> > > +{ + typedef std::priority_queue<T, std::vector<T, test_allocator<T> > > base; + typedef typename base::container_type container_type; + typedef typename base::value_compare value_compare; + + explicit test(const test_allocator<int>& a) : base(a) {} + test(const value_compare& comp, const test_allocator<int>& a) + : base(comp, a) {} + test(const value_compare& comp, const container_type& c, + const test_allocator<int>& a) : base(comp, c, a) {} +#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES + test(const value_compare& comp, container_type&& c, + const test_allocator<int>& a) : base(comp, std::move(c), a) {} + test(test&& q, const test_allocator<int>& a) : base(std::move(q), a) {} +#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES + test_allocator<int> get_allocator() {return c.get_allocator();} + + using base::c; +}; + +int main() +{ + test<int> q(std::less<int>(), test_allocator<int>(3)); + assert(q.c.get_allocator() == test_allocator<int>(3)); + assert(q.c.size() == 0); +} |