adding support for unpacking shared_ptr
This commit is contained in:
parent
1e10d3dc47
commit
cb27b810e3
1 changed files with 7 additions and 0 deletions
|
|
@ -122,6 +122,13 @@ namespace fc {
|
||||||
s.read((char*)&v.data[0],N*sizeof(T));
|
s.read((char*)&v.data[0],N*sizeof(T));
|
||||||
} FC_RETHROW_EXCEPTIONS( warn, "fc::array<type,length>", ("type",fc::get_typename<T>::name())("length",N) ) }
|
} FC_RETHROW_EXCEPTIONS( warn, "fc::array<type,length>", ("type",fc::get_typename<T>::name())("length",N) ) }
|
||||||
|
|
||||||
|
template<typename Stream, typename T>
|
||||||
|
inline void unpack( Stream& s, std::shared_ptr<T>& v)
|
||||||
|
{ try {
|
||||||
|
v = std::make_shared<T>();
|
||||||
|
unpack( s, *v );
|
||||||
|
} FC_RETHROW_EXCEPTIONS( warn, "std::shared_ptr<T>", ("type",fc::get_typename<T>::name()) ) }
|
||||||
|
|
||||||
template<typename Stream> inline void pack( Stream& s, const signed_int& v ) {
|
template<typename Stream> inline void pack( Stream& s, const signed_int& v ) {
|
||||||
uint32_t val = (v.value<<1) ^ (v.value>>31);
|
uint32_t val = (v.value<<1) ^ (v.value>>31);
|
||||||
do {
|
do {
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue