
19 Feb
2012
19 Feb
'12
7:09 p.m.
I'm not an expert in architecture so I hope I'm not asking something obvious.
My understanding is that for example if you're targeting classic PC hardware, you'll get BOOST_ARCHITECTURE_X86 for 32Bit OS BOOST_ARCHITECTURE_AMD64 for 64Bit OS (running on 64bit processor).
If you are targeting 64Bit you are more likely to get both BOOST_ARCHITECTURE_AMD64 and BOOST_ARCHITECTURE_IA64.
The set of 64-bit architectures is a bit error-prone to enumerate explicitly in user code, as the set will inevitably be either incomplete or stale.
Just consider SPARC, IBM's POWER, MIPS, and not to mention the most glorious DEC Alpha.
Couldn't you just use static_if(sizeof(void*) == 8) for this? ;)
Not at preprocessing time. Regards, Nate