
John Maddock:
So the question becomes, how do you want these macros to behave?
The specific issue that I have is the user macro BOOST_DISABLE_THREADS being set by Boost.Config. I want to be sure that user macros are only set by the user and reflect his intent. In general, it would be nice if BOOST_HAS_THREADS actually means: "Defined if the compiler, in its current translation mode, supports multiple threads of execution." as described in the documentation. The current behavior of "strict mode" disabling BOOST_HAS_THREADS does not match the documentation. BOOST_HAS_WINTHREADS is documented to mean: "The platform supports MS Windows style threads." but its approximate meaning today is: "#include <windows.h> works" I don't dispute that it might be useful to know whether <windows.h> can be included or not, of course.