helper for smart_ref
This commit is contained in:
parent
e2e0f38dc6
commit
63677c47d9
3 changed files with 26 additions and 2 deletions
|
|
@ -5,6 +5,7 @@
|
||||||
#include <fc/io/varint.hpp>
|
#include <fc/io/varint.hpp>
|
||||||
#include <fc/optional.hpp>
|
#include <fc/optional.hpp>
|
||||||
#include <fc/fwd.hpp>
|
#include <fc/fwd.hpp>
|
||||||
|
#include <fc/smart_ref_fwd.hpp>
|
||||||
#include <fc/array.hpp>
|
#include <fc/array.hpp>
|
||||||
#include <fc/time.hpp>
|
#include <fc/time.hpp>
|
||||||
#include <fc/filesystem.hpp>
|
#include <fc/filesystem.hpp>
|
||||||
|
|
@ -177,6 +178,21 @@ namespace fc {
|
||||||
template<typename Stream, typename T>
|
template<typename Stream, typename T>
|
||||||
void unpack( Stream& s, fc::safe<T>& v ) { unpack( s, v.value ); }
|
void unpack( Stream& s, fc::safe<T>& v ) { unpack( s, v.value ); }
|
||||||
|
|
||||||
|
template<typename Stream, typename T, unsigned int S, typename Align>
|
||||||
|
void pack( Stream& s, const fc::fwd<T,S,Align>& v ) {
|
||||||
|
pack( *v );
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename Stream, typename T, unsigned int S, typename Align>
|
||||||
|
void unpack( Stream& s, fc::fwd<T,S,Align>& v ) {
|
||||||
|
unpack( *v );
|
||||||
|
}
|
||||||
|
template<typename Stream, typename T>
|
||||||
|
void pack( Stream& s, const fc::smart_ref<T>& v ) { pack( s, *v ); }
|
||||||
|
|
||||||
|
template<typename Stream, typename T>
|
||||||
|
void unpack( Stream& s, fc::smart_ref<T>& v ) { unpack( s, *v ); }
|
||||||
|
|
||||||
// optional
|
// optional
|
||||||
template<typename Stream, typename T>
|
template<typename Stream, typename T>
|
||||||
void pack( Stream& s, const fc::optional<T>& v ) {
|
void pack( Stream& s, const fc::optional<T>& v ) {
|
||||||
|
|
|
||||||
|
|
@ -270,11 +270,11 @@ public:
|
||||||
}
|
}
|
||||||
friend bool operator == ( const static_variant& a, const static_variant& b )
|
friend bool operator == ( const static_variant& a, const static_variant& b )
|
||||||
{
|
{
|
||||||
return a.wich() == b.which();
|
return a.which() == b.which();
|
||||||
}
|
}
|
||||||
friend bool operator < ( const static_variant& a, const static_variant& b )
|
friend bool operator < ( const static_variant& a, const static_variant& b )
|
||||||
{
|
{
|
||||||
return a.wich() < b.which();
|
return a.which() < b.which();
|
||||||
}
|
}
|
||||||
|
|
||||||
template<typename X>
|
template<typename X>
|
||||||
|
|
|
||||||
|
|
@ -14,6 +14,7 @@
|
||||||
#include <fc/string.hpp>
|
#include <fc/string.hpp>
|
||||||
#include <fc/container/deque_fwd.hpp>
|
#include <fc/container/deque_fwd.hpp>
|
||||||
#include <fc/container/flat_fwd.hpp>
|
#include <fc/container/flat_fwd.hpp>
|
||||||
|
#include <fc/smart_ref_fwd.hpp>
|
||||||
|
|
||||||
namespace fc
|
namespace fc
|
||||||
{
|
{
|
||||||
|
|
@ -44,6 +45,8 @@ namespace fc
|
||||||
|
|
||||||
void to_variant( const blob& var, variant& vo );
|
void to_variant( const blob& var, variant& vo );
|
||||||
void from_variant( const variant& var, blob& vo );
|
void from_variant( const variant& var, blob& vo );
|
||||||
|
template<typename T> void to_variant( const smart_ref<T>& s, variant& v );
|
||||||
|
template<typename T> void from_variant( const variant& v, smart_ref<T>& s );
|
||||||
template<typename T> void to_variant( const safe<T>& s, variant& v );
|
template<typename T> void to_variant( const safe<T>& s, variant& v );
|
||||||
template<typename T> void from_variant( const variant& v, safe<T>& s );
|
template<typename T> void from_variant( const variant& v, safe<T>& s );
|
||||||
template<typename T> void to_variant( const std::unique_ptr<T>& s, variant& v );
|
template<typename T> void to_variant( const std::unique_ptr<T>& s, variant& v );
|
||||||
|
|
@ -534,6 +537,11 @@ namespace fc
|
||||||
template<typename T>
|
template<typename T>
|
||||||
void from_variant( const variant& v, safe<T>& s ) { s.value = v.as_uint64(); }
|
void from_variant( const variant& v, safe<T>& s ) { s.value = v.as_uint64(); }
|
||||||
|
|
||||||
|
template<typename T>
|
||||||
|
void to_variant( const smart_ref<T>& s, variant& v ) { v = *s; }
|
||||||
|
|
||||||
|
template<typename T>
|
||||||
|
void from_variant( const variant& v, smart_ref<T>& s ) { from_variant( v, *s ); }
|
||||||
|
|
||||||
variant operator + ( const variant& a, const variant& b );
|
variant operator + ( const variant& a, const variant& b );
|
||||||
variant operator - ( const variant& a, const variant& b );
|
variant operator - ( const variant& a, const variant& b );
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue