On 19/11/2013 16:48, Quoth Edward Diener:
There are 4 lines of C++FLAGS
toolset.flags msvc.compile C++FLAGS <exception-handling>on/<asynch-exceptions>off/<extern-c-nothrow>off : /EHs ; toolset.flags msvc.compile C++FLAGS <exception-handling>on/<asynch-exceptions>off/<extern-c-nothrow>on : /EHsc ; toolset.flags msvc.compile C++FLAGS <exception-handling>on/<asynch-exceptions>on/<extern-c-nothrow>off : /EHa ; toolset.flags msvc.compile C++FLAGS <exception-handling>on/<asynch-exceptions>on/<extern-c-nothrow>on : /EHac ;
How is a particular one chosen ?
I've never really looked into it, but it's pretty clear from the above that it will select whichever line matches the AND-combination of the settings on that line. So eg. you'll get /EHs if exception-handling=on and asynch-exceptions=off and extern-c-nothrow=off. As for those settings, they'll either be defined in project-config.jam or one of the library, compiler, or builtin jam files. (Presumably searched in that order.) But that's just a guess.