One possible solution is:
unsigned long i = arr.to_ulong();i = (i & (i >> 4) & (i >> 8) & (i >> 12)) & 0xf;a = std::bitset<4>(i);
One possible solution is:
unsigned long i = arr.to_ulong();i = (i & (i >> 4) & (i >> 8) & (i >> 12)) & 0xf;a = std::bitset<4>(i);