uint64_t res;
+#if CDS_BUILD_BITS == 64
{
typedef cds::algo::split_bitstring< int48, int48_size, size_t > split_bitstring;
split_bitstring splitter( src );
ASSERT_TRUE( splitter.eos() );
ASSERT_TRUE( !splitter );
}
+#endif
typedef cds::algo::split_bitstring< int48, int48_size, size_t > split_bitstring;
split_bitstring splitter( src );
for ( size_t i = 0; i < int48_size * 8; ++i ) {
ASSERT_FALSE( splitter.eos() );
ASSERT_FALSE( !splitter );
+#if CDS_BUILD_BITS == 64
res |= splitter.cut( 1 ) << i;
+#else
+ res |= static_cast<decltype(res)>( splitter.cut( 1 )) << i;
+#endif
}
ASSERT_TRUE( splitter.eos() );
ASSERT_TRUE( !splitter );
ASSERT_FALSE( splitter.eos() );
ASSERT_FALSE( !splitter );
int bits = std::rand() % 16;
+#if CDS_BUILD_BITS == 64
res |= splitter.safe_cut( bits ) << shift;
+#else
+ res |= static_cast<decltype(res)>( splitter.safe_cut( bits )) << shift;
+#endif
shift += bits;
}
ASSERT_TRUE( splitter.eos() );
uint64_t res;
+#if CDS_BUILD_BITS == 64
{
typedef cds::algo::split_bitstring< int48, int48_size, size_t > split_bitstring;
split_bitstring splitter( src );
ASSERT_TRUE( splitter.eos() );
ASSERT_TRUE( !splitter );
}
+#endif
typedef cds::algo::split_bitstring< int48, int48_size, size_t > split_bitstring;
split_bitstring splitter( src );
for ( size_t i = 0; i < int48_size * 8; ++i ) {
ASSERT_FALSE( splitter.eos() );
ASSERT_FALSE( !splitter );
+#if CDS_BUILD_BITS == 64
res = ( res << 1 ) | ( splitter.cut( 1 ) );
+#else
+ res = ( res << 1 ) | static_cast<decltype(res)>( splitter.cut( 1 ) );
+#endif
}
ASSERT_TRUE( splitter.eos() );
ASSERT_TRUE( !splitter );
size_t shift = splitter.rest_count();
if ( shift > bits )
shift = bits;
+#if CDS_BUILD_BITS == 64
res = ( res << shift ) | splitter.safe_cut( bits );
+#else
+ res = ( res << shift ) | static_cast<decltype(res)>( splitter.safe_cut( bits ));
+#endif
}
ASSERT_TRUE( splitter.eos() );
ASSERT_TRUE( !splitter );