|
| ProtoValue () noexcept |
| Construct a null object.
|
|
| ProtoValue (ProtoValue &&other) noexcept(proto_value_details::all_moves_noexcept{}) |
| Move construct this from other, leaving other in its unspecified-but-valid moved from state.
|
|
| ProtoValue (const ProtoValue &other) |
|
ProtoValue & | operator= (ProtoValue &&other) noexcept(proto_value_details::all_moves_noexcept{}) |
| Move assignment from other, leaving other in its unspecified-but-valid moved from state.
|
|
ProtoValue & | operator= (const ProtoValue &other) |
|
void | swap (ProtoValue &other) noexcept(proto_value_details::all_moves_noexcept{}) |
|
template<typename T > |
T const * | get () const |
|
|
Constructors which initialize a ProtoValue holding its argument.
|
| ProtoValue (std::nullptr_t) noexcept |
|
| ProtoValue (bool b) noexcept |
|
| ProtoValue (int i) noexcept |
| Construct a double object upcast from constructor argument.
|
|
| ProtoValue (double d) noexcept |
|
| ProtoValue (std::string s) noexcept |
|
| ProtoValue (const char *str) |
| Deduction helper constructor for string from string literal.
|
|
template<typename Val = ProtoValue, typename = std::enable_if_t<std::is_same<Val, ProtoValue>{}>> |
| ProtoValue (std::vector< Val >) noexcept(std::is_nothrow_move_constructible< std::vector< Val > >{}) |
| Construct from a ProtoList.
|
|
template<typename Val = ProtoValue, typename = std::enable_if_t<std::is_same<Val, ProtoValue>{}>> |
| ProtoValue (std::unordered_map< std::string, Val >) noexcept(std::is_nothrow_move_constructible< std::unordered_map< std::string, Val > >{}) |
| Construct from a ProtoStruct.
|
|
|
Kind | kind () const |
| Obtain enumerator constant representing the stored data type.
|
|
template<typename T > |
bool | is_a () const |
| Checks whether this ProtoT is an instance of type T.
|
|
bool | is_null () const |
| Convenience version of is_a<T> to check if the value is nullptr.
|
|
template<typename T > |
T * | get () |
| Return a T pointer if this is_a<T>(), else return nullptr.
|
|
template<typename T > |
T const * | get () const |
| Return a T pointer if this is_a<T>(), else return nullptr.
|
|
template<typename T > |
std::enable_if_t< std::is_scalar< T >{}, T & > | get_unchecked () |
| Return a reference to the underlying T, without checking.
|
|
template<typename T > |
std::enable_if_t< std::is_scalar< T >{}, T > | get_unchecked () const |
| Return the underlying T by value, without checking.
|
|
template<typename T > |
std::enable_if_t<!std::is_scalar< T >{}, T & > | get_unchecked () & |
| Return a mutable reference to the underlying T, without checking.
|
|
template<typename T > |
std::enable_if_t<!std::is_scalar< T >{}, T const & > | get_unchecked () const & |
| Return an immutable reference to the underlying T, without checking.
|
|
template<typename T > |
std::enable_if_t<!std::is_scalar< T >{}, T && > | get_unchecked () && |
| Return an rvalue reference to the underlying T, without checking.
|
|
Type-erased value for storing google::protobuf::Value types. A ProtoValue can be nullptr, bool, int, double, std::string, or, recursively, a vector or string-map of ProtoValue. This type is used at API/ABI boundaries for interfacing with grpc/proto code.