#pragma once #include #include #include #include #include #include #include #include namespace fc { namespace bip = boost::interprocess; template void to_variant( const bip::deque< T... >& t, fc::variant& v ) { std::vector vars(t.size()); for( size_t i = 0; i < t.size(); ++i ) { vars[i] = t[i]; } v = std::move(vars); } template void from_variant( const fc::variant& v, bip::deque< T, A... >& d ) { const variants& vars = v.get_array(); d.clear(); d.resize( vars.size() ); for( uint32_t i = 0; i < vars.size(); ++i ) { from_variant( vars[i], d[i] ); } } /* bip::flat_map == boost::flat_map template void to_variant( const bip::flat_map< K, V, T... >& var, fc::variant& vo ) { std::vector< variant > vars(var.size()); size_t i = 0; for( auto itr = var.begin(); itr != var.end(); ++itr, ++i ) vars[i] = fc::variant(*itr); vo = vars; } template void from_variant( const variant& var, bip::flat_map& vo ) { const variants& vars = var.get_array(); vo.clear(); for( auto itr = vars.begin(); itr != vars.end(); ++itr ) vo.insert( itr->as< std::pair >() ); } */ template void to_variant( const bip::vector< T... >& t, fc::variant& v ) { std::vector vars(t.size()); for( size_t i = 0; i < t.size(); ++i ) { vars[i] = t[i]; } v = std::move(vars); } template void from_variant( const fc::variant& v, bip::vector< T, A... >& d ) { const variants& vars = v.get_array(); d.clear(); d.resize( vars.size() ); for( uint32_t i = 0; i < vars.size(); ++i ) { from_variant( vars[i], d[i] ); } } }