Skip to content
Welcome to the new CppUtils documentation!
std::variant<std::monostate, bool, double, std::string, Array, Object> data;
constexpr Value::Value() = default;
constexpr Value::Value(bool value);
constexpr Value::Value(double value);
Value::Value(std::string value);
Value::Value(const char* value);
Value::Value(Array value);
Value::Value(Object value);
[[nodiscard]] constexpr auto Value::isNull() const -> bool;
[[nodiscard]] constexpr auto Value::isBool() const -> bool;
[[nodiscard]] constexpr auto Value::isNumber() const -> bool;
[[nodiscard]] constexpr auto Value::isString() const -> bool;
[[nodiscard]] constexpr auto Value::isArray() const -> bool;
[[nodiscard]] constexpr auto Value::isObject() const -> bool;
template <class T>
[[nodiscard]] constexpr auto Value::is() const -> bool;
template <class T>
[[nodiscard]] constexpr auto&& Value::as(this auto&& self);
template <class T>
[[nodiscard]] auto Value::getIf() const -> std::optional<std::reference_wrapper<const T>>;
[[nodiscard]] constexpr auto Value::operator==(const Value&) const -> bool = default;
[[nodiscard]] Value::operator std::string() const;
[[nodiscard]] auto Value::operator[](this auto&& self [[clang::lifetimebound, msvc::lifetimebound]], std::string_view key) -> const Value&;
[[nodiscard]] auto Value::operator[](this auto&& self [[clang::lifetimebound, msvc::lifetimebound]], std::size_t index) -> const Value&;
template <std::output_iterator< char > Iterator>
auto Value::dump(Iterator out) const -> Iterator;