
The #error directive resides in <boost directory>/boost/config/compiler/visualc.hpp : // versions check: // we don't support Visual C++ prior to version 6: #if _MSC_VER < 1200 #error "Compiler not supported or configured - please reconfigure" #endif As you can see, the version check doesn't deal with threads at all... Moreover, I compile in (debug) multithreaded mode and the PThread/WIN32 library I have is itself compiled in (release) multithreaded mode so I'm not supposed to face problems with run-time errors due to using wrong C/C++ run-time libraries. What I've found in many boost sources is that there are a lot of #if _MSC_VER compared to values lesser than 1200 (VC++6), so at least a few parts of the sources are compatible with VC++5, right ? I'll be grateful if someone could give me a link that explain why the boost team has decided to put this version check (unconditional) while leaving parts of the sources with behaviors depending on previous versions of VC++... Thank you for your attention and your previous and next answers, Regis. Dale wrote:
By disabling the #error directive in the compiler configuration hpp file, I'm surprised to see all seem to work fine. So my 1st question is : - Why such a #error directive ?
Someone else will have to address this.
Is the #error directive "Thread Support Unavailable"???
If so...
Your getting lucky! You'll probably find runtime errors. The #error directive stops you compiling programs that include Boost.Threads with applications that use the single-threaded C runtime library.
Change your application settings to link against the multi-threaded (debug) runtime library and the #error will go away and your program has a chance of working correctly.
If you're not using the multi-threaded C runtime, you'll have problems with any calls that store data within the C runtime, e.g. gmtime, strtok (the list goes on). Even if you don't use these, you'll also have problems because your malloc implementation won't be thread-safe.
If not then I'll let someone else address the issue (it will probably help if you tell us what the #error message is).
- Dale.
Info: http://www.boost.org Wiki: http://www.crystalclearsoftware.com/cgi-bin/boost_wiki/wiki.pl Unsubscribe: mailto:boost-users-unsubscribe@yahoogroups.com
Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/