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) ) );
|
set(std::move(key), variant( fc::forward<T>(var) ) );
|
||||||
return *this;
|
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;
|
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 )
|
void to_variant( const mutable_variant_object& var, variant& vo )
|
||||||
{
|
{
|
||||||
vo = variant(var);
|
vo = variant(var);
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue