|
constexpr auto | is_null () const -> bool |
|
constexpr auto | is_boolean () const -> bool |
|
constexpr auto | is_integer () const -> bool |
|
constexpr auto | is_number () const -> bool |
|
constexpr auto | is_string () const -> bool |
|
constexpr auto | is_array () const -> bool |
|
constexpr auto | is_object () const -> bool |
|
constexpr auto | as_boolean () const -> vocab::Optional< Bool > |
|
constexpr auto | is_true () const -> bool |
|
constexpr auto | is_false () const -> bool |
|
constexpr auto | as_integer () const -> vocab::Optional< Number > |
|
constexpr auto | as_number () const -> vocab::Optional< Number > |
|
constexpr auto | as_string () -> vocab::Optional< String & > |
|
constexpr auto | as_string () const -> vocab::Optional< String const & > |
|
constexpr auto | as_array () -> vocab::Optional< Array & > |
|
constexpr auto | as_array () const -> vocab::Optional< Array const & > |
|
constexpr auto | as_object () -> vocab::Optional< Object & > |
|
constexpr auto | as_object () const -> vocab::Optional< Object const & > |
|
constexpr auto | operator[] (String const &key) -> decltype(auto) |
|
constexpr auto | operator[] (String &&key) -> decltype(auto) |
|
template<typename U>
requires (requires { util::declval<Object&>()[util::declval<U>()]; }) |
constexpr auto | operator[] (U &&key) -> decltype(auto) |
|
constexpr auto | at (String const &key) -> Optional< Value & > |
|
constexpr auto | at (String const &key) const -> Optional< Value const & > |
|
template<typename U>
requires (requires { util::declval<Object&>().at(util::declval<U&>()); }) |
constexpr auto | at (U &&key) -> Optional< Value & > |
|
template<typename U>
requires (requires { util::declval<Object const&>().at(util::declval<U&>()); }) |
constexpr auto | at (U &&key) const -> Optional< Value const & > |
|
constexpr auto | contains (String const &key) const -> bool |
|
template<typename U> |
constexpr auto | contains (U &&key) const -> bool |
|
constexpr auto | erase (String const &key) -> size_t |
|
template<typename U>
requires (requires { util::declval<Object&>().erase(util::declval<U&>()); }) |
constexpr auto | erase (U &&key) -> size_t |
|
template<typename... Args>
requires (concepts::ConstructibleFrom<Value, Args...>) |
constexpr auto | try_emplace (String const &key, Args &&... args) -> decltype(auto) |
|
template<typename... Args>
requires (concepts::ConstructibleFrom<Value, Args...>) |
constexpr auto | try_emplace (String &&key, Args &&... args) -> decltype(auto) |
|
template<typename U, typename... Args>
requires (concepts::ConstructibleFrom<Value, Args...> && requires { util::declval<Object&>().try_emplace(util::declval<U>(), util::declval<Args>()...); }) |
constexpr auto | try_emplace (U &&key, Args &&... args) -> decltype(auto) |
|
template<typename V>
requires (concepts::ConstructibleFrom<Value, V>) |
constexpr auto | insert_or_assign (String const &key, V &&value) -> decltype(auto) |
|
template<typename V>
requires (concepts::ConstructibleFrom<Value, V>) |
constexpr auto | insert_or_assign (String &&key, V &&value) -> decltype(auto) |
|
template<typename U, typename V>
requires (concepts::ConstructibleFrom<Value, V> && requires { util::declval<Object&>().insert_or_assign(util::declval<U>(), util::declval<Value>()); }) |
constexpr auto | insert_or_assign (U &&key, V &&value) -> decltype(auto) |
|
constexpr auto | empty () const -> bool |
|
constexpr auto | size () const -> usize |
|
constexpr void | clear () |
|
constexpr auto | front () -> Optional< Value & > |
|
constexpr auto | front () const -> Optional< Value const & > |
|
constexpr auto | back () -> Optional< Value & > |
|
constexpr auto | back () const -> Optional< Value const & > |
|
constexpr auto | operator[] (usize index) -> Value & |
|
constexpr auto | operator[] (usize index) const -> Value const & |
|
constexpr auto | at (usize index) -> Optional< Value & > |
|
constexpr auto | at (usize index) const -> Optional< Value const & > |
|
constexpr auto | push_back (Value &&value) -> decltype(auto) |
|
constexpr auto | pop_back () -> Optional< Value > |
|
| Variant (Variant const &)=default |
|
| Variant (Variant &&)=default |
|
constexpr | Variant () |
|
constexpr | Variant (Variant const &other) |
|
constexpr | Variant (Variant &&other) |
|
constexpr | Variant (U &&value) |
|
constexpr | Variant (Constexpr< index >, Args &&... args) |
|
constexpr | Variant (Constexpr< index >, std::initializer_list< U > list, Args &&... args) |
|
constexpr | Variant (InPlaceType< T >, Args &&... args) |
|
constexpr | Variant (InPlaceType< T >, std::initializer_list< U > list, Args &&... args) |
|
| ~Variant ()=default |
|
constexpr | ~Variant () |
|
auto | operator= (Variant const &) -> Variant &requires(trivially_copy_assignable)=default |
|
auto | operator= (Variant &&) -> Variant &requires(trivially_move_assignable)=default |
|
constexpr auto | operator= (Variant const &other) -> Variant &requires(!trivially_copy_assignable &©able) |
|
constexpr auto | operator= (Variant &&other) -> Variant &requires(!trivially_move_assignable &&movable) |
|
constexpr auto | operator= (U &&value) -> Variant & |
|
constexpr | explicit ((!concepts::ConvertibleTo< Other const &, Types >||...)) Variant(Variant< Other... > const &other) |
|
constexpr | explicit ((!concepts::ConvertibleTo< Other, Types >||...)) Variant(Variant< Other... > &&other) |
|
constexpr auto | index () const -> size_t |
|
constexpr auto | emplace (Args &&... args) -> T & |
|
constexpr auto | emplace (std::initializer_list< U > list, Args &&... args) -> T & |
|
constexpr auto | emplace (Args &&... args) -> T & |
|
constexpr auto | emplace (std::initializer_list< U > list, Args &&... args) -> T & |
|
| Variant (Variant const &)=default |
|
| Variant (Variant &&)=default |
|
constexpr | Variant () |
|
constexpr | Variant (Variant const &other) |
|
constexpr | Variant (Variant &&other) |
|
constexpr | Variant (U &&value) |
|
constexpr | Variant (Constexpr< index >, Args &&... args) |
|
constexpr | Variant (Constexpr< index >, std::initializer_list< U > list, Args &&... args) |
|
constexpr | Variant (InPlaceType< T >, Args &&... args) |
|
constexpr | Variant (InPlaceType< T >, std::initializer_list< U > list, Args &&... args) |
|
| ~Variant ()=default |
|
constexpr | ~Variant () |
|
auto | operator= (Variant const &) -> Variant &requires(trivially_copy_assignable)=default |
|
auto | operator= (Variant &&) -> Variant &requires(trivially_move_assignable)=default |
|
constexpr auto | operator= (Variant const &other) -> Variant &requires(!trivially_copy_assignable &©able) |
|
constexpr auto | operator= (Variant &&other) -> Variant &requires(!trivially_move_assignable &&movable) |
|
constexpr auto | operator= (U &&value) -> Variant & |
|
constexpr | explicit ((!concepts::ConvertibleTo< Other const &, Types >||...)) Variant(Variant< Other... > const &other) |
|
constexpr | explicit ((!concepts::ConvertibleTo< Other, Types >||...)) Variant(Variant< Other... > &&other) |
|
constexpr auto | index () const -> size_t |
|
constexpr auto | emplace (Args &&... args) -> T & |
|
constexpr auto | emplace (std::initializer_list< U > list, Args &&... args) -> T & |
|
constexpr auto | emplace (Args &&... args) -> T & |
|
constexpr auto | emplace (std::initializer_list< U > list, Args &&... args) -> T & |
|
constexpr auto | get () &-> decltype(auto) |
|
constexpr auto | get () const &-> decltype(auto) |
|
constexpr auto | get () &&-> decltype(auto) |
|
constexpr auto | get () const &&-> decltype(auto) |
|
constexpr auto | get () &-> decltype(auto) |
|
constexpr auto | get () const &-> decltype(auto) |
|
constexpr auto | get () &&-> decltype(auto) |
|
constexpr auto | get () const &&-> decltype(auto) |
|