#pragma once #include NLOHMANN_JSON_NAMESPACE_BEGIN namespace detail { #ifdef JSON_HAS_CPP_17 template struct cxpr_or_impl : std::integral_constant < bool, (Booleans || ...) > {}; template struct cxpr_and_impl : std::integral_constant < bool, (Booleans &&...) > {}; #else template struct cxpr_or_impl : std::false_type {}; template struct cxpr_or_impl : std::true_type {}; template struct cxpr_or_impl : cxpr_or_impl {}; template struct cxpr_and_impl : std::true_type {}; template struct cxpr_and_impl : cxpr_and_impl {}; template struct cxpr_and_impl : std::false_type {}; #endif template struct cxpr_not : std::integral_constant < bool, !Boolean::value > {}; template struct cxpr_or : cxpr_or_impl {}; template struct cxpr_or_c : cxpr_or_impl {}; template struct cxpr_and : cxpr_and_impl {}; template struct cxpr_and_c : cxpr_and_impl {}; } // namespace detail NLOHMANN_JSON_NAMESPACE_END