| //===----------------------------------------------------------------------===// |
| // |
| // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. |
| // See https://llvm.org/LICENSE.txt for license information. |
| // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception |
| // |
| //===----------------------------------------------------------------------===// |
| |
| // UNSUPPORTED: c++03 |
| |
| // <queue> |
| |
| // template <class InputIterator> |
| // priority_queue(InputIterator first, InputIterator last, const Compare& = Compare()); |
| // template <class InputIterator> |
| // priority_queue(InputIterator first, InputIterator last, const Compare&, const Container&); |
| // template <class InputIterator> |
| // priority_queue(InputIterator first, InputIterator last, const Compare&, Container&&); |
| // template <class InputIterator> |
| // priority_queue(InputIterator first, InputIterator last, const Alloc&); |
| // template <class InputIterator> |
| // priority_queue(InputIterator first, InputIterator last, const Compare&, const Alloc&); |
| // template <class InputIterator> |
| // priority_queue(InputIterator first, InputIterator last, const Compare&, const Container&, const Alloc&); |
| // template <class InputIterator> |
| // priority_queue(InputIterator first, InputIterator last, const Compare&, Container&&, const Alloc&); |
| |
| #include <queue> |
| #include <type_traits> |
| #include <vector> |
| |
| // Sanity-check that std::vector is constructible from two ints... |
| static_assert( std::is_constructible<std::vector<int>, int*, int*>::value, ""); |
| static_assert( std::is_constructible<std::vector<int>, int , int >::value, ""); |
| |
| // ...but std::priority_queue is not. |
| static_assert( std::is_constructible<std::priority_queue<int>, int*, int*>::value, ""); |
| static_assert(!std::is_constructible<std::priority_queue<int>, int , int >::value, ""); |
| |
| static_assert( std::is_constructible<std::priority_queue<int>, int*, int*, std::less<int>>::value, ""); |
| static_assert(!std::is_constructible<std::priority_queue<int>, int , int , std::less<int>>::value, ""); |
| |
| static_assert( std::is_constructible<std::priority_queue<int>, int*, int*, std::less<int>, std::vector<int>>::value, ""); |
| static_assert(!std::is_constructible<std::priority_queue<int>, int , int , std::less<int>, std::vector<int>>::value, ""); |
| |
| static_assert( std::is_constructible<std::priority_queue<int>, int*, int*, std::less<int>, std::vector<int>&>::value, ""); |
| static_assert(!std::is_constructible<std::priority_queue<int>, int , int , std::less<int>, std::vector<int>&>::value, ""); |
| |
| static_assert( std::is_constructible<std::priority_queue<int>, int*, int*, std::allocator<int>>::value, ""); |
| static_assert(!std::is_constructible<std::priority_queue<int>, int , int , std::allocator<int>>::value, ""); |
| |
| static_assert( std::is_constructible<std::priority_queue<int>, int*, int*, std::less<int>, std::allocator<int>>::value, ""); |
| static_assert(!std::is_constructible<std::priority_queue<int>, int , int , std::less<int>, std::allocator<int>>::value, ""); |
| |
| static_assert( std::is_constructible<std::priority_queue<int>, int*, int*, std::less<int>, std::vector<int>, std::allocator<int>>::value, ""); |
| static_assert(!std::is_constructible<std::priority_queue<int>, int , int , std::less<int>, std::vector<int>, std::allocator<int>>::value, ""); |
| |
| static_assert( std::is_constructible<std::priority_queue<int>, int*, int*, std::less<int>, std::vector<int>&, std::allocator<int>>::value, ""); |
| static_assert(!std::is_constructible<std::priority_queue<int>, int , int , std::less<int>, std::vector<int>&, std::allocator<int>>::value, ""); |