Как задать маску вида 0x55555555 переносимым образом?

1,00
р.
В некоторых задачах связанных с манипуляцией битами нужна маска для всех чётных битов. Каждый раз такая маска задаётся константой вида 0x55555555, что хорошо если unsigned занимает 32 бита. А если 16 или 64?
Как определить маску для всех чётных битов способом, который будет работать для любого числа бит в типе? Определение должно быть константой времени компиляции.

Ответ
Можно просто (unsigned int)-1 / 3.