blob: fe85617416d0230bc545ea3b10637b9f11548f8d [file]
// { dg-do compile { target c++26 } }
#include <queue>
constexpr bool test_constexpr_priority_queue() {
std::priority_queue<int> pq;
if (!pq.empty()) return false;
if (pq.size() != 0) return false;
pq.push(10);
if (pq.empty()) return false;
if (pq.size() != 1) return false;
if (pq.top() != 10) return false;
pq.emplace(30);
pq.emplace(20);
if (pq.size() != 3) return false;
if (pq.top() != 30) return false;
pq.pop();
if (pq.size() != 2) return false;
if (pq.top() != 20) return false;
std::priority_queue<int> pq2;
pq2 = pq;
if (pq2.size() != 2) return false;
if (pq2.top() != 20) return false;
std::priority_queue<int> pq3;
pq3.push(100);
pq.swap(pq3);
if (pq.size() != 1 || pq.top() != 100) return false;
if (pq3.size() != 2 || pq3.top() != 20) return false;
int arr[] = {50, 200, 10};
pq.push_range(arr);
if (pq.size() != 4) return false;
if (pq.top() != 200) return false;
return true;
}
static_assert(test_constexpr_priority_queue(),
"constexpr priority_queue test failed!");