variant_object: Implement operator() overload to copy a variant_object
This commit is contained in:
parent
71be796af5
commit
80d967a70d
2 changed files with 24 additions and 0 deletions
|
|
@ -176,6 +176,14 @@ namespace fc
|
|||
set(std::move(key), variant( fc::forward<T>(var) ) );
|
||||
return *this;
|
||||
}
|
||||
/**
|
||||
* Copy a variant_object into this mutable_variant_object.
|
||||
*/
|
||||
mutable_variant_object& operator()( const variant_object& vo );
|
||||
/**
|
||||
* Copy another mutable_variant_object into this mutable_variant_object.
|
||||
*/
|
||||
mutable_variant_object& operator()( const mutable_variant_object& mvo );
|
||||
///@}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -350,6 +350,22 @@ namespace fc
|
|||
return *this;
|
||||
}
|
||||
|
||||
mutable_variant_object& mutable_variant_object::operator()( const variant_object& vo )
|
||||
{
|
||||
for( const variant_object::entry& e : vo )
|
||||
set( e.key(), e.value() );
|
||||
return *this;
|
||||
}
|
||||
|
||||
mutable_variant_object& mutable_variant_object::operator()( const mutable_variant_object& mvo )
|
||||
{
|
||||
if( &mvo == this ) // mvo(mvo) is no-op
|
||||
return *this;
|
||||
for( const mutable_variant_object::entry& e : mvo )
|
||||
set( e.key(), e.value() );
|
||||
return *this;
|
||||
}
|
||||
|
||||
void to_variant( const mutable_variant_object& var, variant& vo )
|
||||
{
|
||||
vo = variant(var);
|
||||
|
|
|
|||
Loading…
Reference in a new issue