Well, if you want to avoid the trap representations, you can continue to use char, int or similar as your boolean type. However, if you do that, you definitionally do not benefit from optimizations ...