19 #include <initializer_list> 29 #if __cpp_lib_nonmember_container_access >= 201411 || _MSC_VER 45 constexpr
auto size(
C const&
c) -> decltype(
c.size()) {
48 template <
typename T, std::
size_t N>
55 constexpr
auto empty(
C const&
c) -> decltype(
c.empty()) {
58 template <
typename T, std::
size_t N>
66 return il.size() == 0;
71 constexpr
auto data(
C&
c) -> decltype(
c.data()) {
75 constexpr
auto data(
C const&
c) -> decltype(
c.data()) {
78 template <
typename T, std::
size_t N>
constexpr bool empty(std::initializer_list< E > il) noexcept
—— Concurrent Priority Queue Implementation ——
requires E e noexcept(noexcept(s.error(std::move(e))))
constexpr auto size(C const &c) -> decltype(c.size())
constexpr auto empty(C const &c) -> decltype(c.empty())
constexpr auto data(C &c) -> decltype(c.data())
constexpr std::size_t size(T const (&)[N]) noexcept
static constexpr uint64_t data[1]