Mask information into a pointer – C++ (Boost.Intrusive)

On Boost I read about masking information into pointers to save memory (here: https://www.boost.org/doc/libs/1_72_0/doc/html/intrusive/set_multiset.html, optimize_size). How is this possible? I read somewhere that pointers only use 48 Bit, but are 64 Bits long, so you can push your information in the higher bits with bit shifting. Is that correct? Why are they using an integer…

Details