copy_bit
以下の関数を次のように簡略化できますout[out_bit] = in[in_bit]
か? (つまり、if
ステートメントを使用しない)
template< typename T >
inline void copy_bit( T& out, const T in, const std::size_t out_bit, const std::size_t in_bit )
{
if ( (in & (1 << in_bit)) != 0 )
{
out |= (1 << out_bit); // Set bit
}
else
{
out &= ~(1 << out_bit); // Clear bit
}
}
// Set bit 4 in x to bit 11 in y
copy_bit( x, y, 4, 11 );
更新:明確にするために、これは宿題や提案std::bitset
が質問に答える XY 問題ではありません。