跳转至

convertible

template<typename J, typename T>
concept convertible = std::disjunction_v<
    std::is_arithmetic<T>,
    std::is_enum<T>,
    std::is_convertible<typename J::Arr, T>,
    std::is_convertible<typename J::Obj, T>,
    std::is_convertible<typename J::Str, T>,
    std::is_convertible<typename J::Num, T>,
    std::is_convertible<typename J::Bol, T>,
    std::is_convertible<typename J::Nul, T>,
    std::is_constructible<T, J>
>;

Located in the mysvac::json namespace, this concept indicates that a JSON container type J can attempt to convert its internal data to type T using to()/move() member functions.

Satisfying this concept only means that T can be used as a template parameter for to()/move(), while the actual success of conversion depends on the JSON container's internal data state.

Version

Since v3.0.0 .