On 29/03/2018 13:49, Andrey Semashev wrote:
Most of applications have 32 and 64-bit variants, unless they stuck in the 90's. Defaulting nowdays to 32 bits is simply unreasonable.
Boost doesn't default to 32 bits. It defaults to both 32 and 64, which is the most reasonable choice on Windows, just as defaulting to the host architecture is the most reasonable choice on Linux. Visual Studio always defaults to 32-bits, thus most Windows applications do as well. Even pure .NET projects, which are compiled to IL and can run equally well as 32-bit or 64-bit, have the "prefer 32-bit" flag set by default which means that they will run as 32-bit if given the option (ie. not loaded as a DLL into a process that is already 64-bit). Take any random Windows machine and run a lot of applications on it. Now look at Task Manager and see how many of those applications have (32 bit) next to them. If you exclude OS-in-box components, games, CAD packages, and the like, you will almost certainly find that your number is higher than 90%. (Heck, until very recently most web browsers were also 32-bit-only, and they do fall into the category of apps that benefit from 64-bit.) Perhaps this is not your ideal world. And I agree that x86-32 is indeed a different (and inferior) architecture from amd64. But being different is in and of itself one reason why apps don't change architectures unless they actually need to (since the rules are subtly different, and it's another thing to test), and the vast majority of apps don't actually need to.