#pragma once #include #include namespace fc { template class array { public: T data[N]; }; template bool operator == ( const array& a, const array& b ) { return 0 == memcmp( a.data, b.data, N ); } template bool operator != ( const array& a, const array& b ) { return 0 != memcmp( a.data, b.data, N ); } template void to_variant( const array& bi, variant& v ) { v = std::vector( (const char*)&bi, ((const char*)&bi) + sizeof(bi) ); } template void from_variant( const variant& v, array& bi ) { std::vector ve = v.as< std::vector >(); if( ve.size() ) { memcpy(&bi, ve.data(), fc::min(ve.size(),sizeof(bi)) ); } else memset( &bi, char(0), sizeof(bi) ); } }