Add special handling for mac size_t and variant (#35)

This commit is contained in:
John M. Jones 2018-04-02 14:23:31 -05:00 committed by GitHub
parent 4441e14807
commit 18640e46e3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 11 additions and 0 deletions

View file

@ -211,6 +211,9 @@ namespace fc
variant( uint32_t val, uint32_t max_depth = 1 );
variant( int32_t val, uint32_t max_depth = 1 );
variant( uint64_t val, uint32_t max_depth = 1 );
#ifdef __APPLE__
variant( size_t val, uint32_t max_depth = 1 );
#endif
variant( int64_t val, uint32_t max_depth = 1 );
variant( double val, uint32_t max_depth = 1 );
variant( bool val, uint32_t max_depth = 1 );

View file

@ -74,6 +74,14 @@ variant::variant( uint64_t val, uint32_t max_depth )
set_variant_type( this, uint64_type );
}
#ifdef __APPLE__
variant::variant( size_t val, uint32_t max_depth )
{
*reinterpret_cast<uint64_t*>(this) = val;
set_variant_type( this, uint64_type );
}
#endif
variant::variant( int64_t val, uint32_t max_depth )
{
*reinterpret_cast<int64_t*>(this) = val;