Я хочу взять несколько битов объекта любого типа, учитывая его местоположение в памяти, и манипулировать битами, как я хочу.
То, что вы здесь говорите, это то, что вы хотите манипулировать базовым битовым представлением структуры данных в виде последовательности битов.
Этот подход может работать только с примитивными типами, например, целыми числами, символами и т. Д.
В вашем примере KEY
может быть чем угодно, а базовые биты равны размеру структуры, поэтому вашand
операция не очень помогает.
Кроме того, KEY
может быть производным классом и начинать работу с адресом виртуального указателя и т. Д., Которые являются частью базовой структуры.
В любом случае, на мой взгляд, код (даже если вы решили пойти по этому пути и какой-нибудь друг-эксперт по SO может помочь вам) будет слишком сложным.
Наилучшим подходом будет hash
каждый из членов объекта. Этот подход, по крайней мере, используется в Java и прост в реализации