跳转至

convertible_array

template<typename J, typename T, typename D>
concept convertible_array =  std::ranges::range<T> && requires {
    requires std::is_constructible_v<typename T::value_type,D>;
    requires convertible<J, typename T::value_type>;
    requires std::is_default_constructible_v<T>;
    requires std::is_default_constructible_v<typename T::value_type>;
    requires std::is_copy_constructible_v<typename T::value_type>;
} && requires (T t, typename T::value_type v) {
    t.emplace_back(std::move(v));
};

位于 vct::tools::json 命名空间中,用于表示某个 Json 容器类型 J 可以尝试使用 to/move 成员函数将内部数据转换为数组类型 T

满足此概念仅代表 T 可以作为 to/move 的模板形参,但转换是否成功取决于 JSON 容器对象的内部数据情况。

模板形参 D 用于表示数组类型 T 的默认值类型,可以不是 value_type 类型,但需要能够转换成 value_type 。 这用于在转换函数中提供子对象的默认指。

版本

v0.8.0 至今。