Boost C++ Libraries: Ticket #2515: [MSVC] ambiguous symbol type_info in boost/python tests https://svn.boost.org/trac10/ticket/2515 <p> The most of the boost/python tests are failed to compile on MSVC with Apache stdcxx library. </p> <p> <a class="ext-link" href="http://tinyurl.com/6hdez7"><span class="icon">​</span>example 1</a> <a class="ext-link" href="http://tinyurl.com/5wywqb"><span class="icon">​</span>example 2</a> </p> <p> The reason is that &lt;eh.h&gt; header contains declaration of the: </p> <pre class="wiki">int _is_exception_typeof(const type_info &amp;, _EXCEPTION_POINTERS *) ; </pre><p> &lt;eh.h&gt; header is included in libs/python/test/module_tail.cpp file. The module_tail.cpp is included in other pythons tests at the end of file after introducing boost::python symbols in global namespace. </p> <p> That tests are compiled successfully on MSVC without stdcxx due to &lt;eh.h&gt; implicitly included thus &lt;exception&gt; header (before "using namespace boost::python;" directive). But any of the stdcxx headers are not including the &lt;eh.h&gt; (see <a class="ext-link" href="http://svn.boost.org/trac/boost/ticket/1599"><span class="icon">​</span>ticket 1599</a>). </p> <p> The possible solution is explicitly include &lt;eh.h&gt; in every test, that includes module_tail.cpp. </p> <p> Another solution: </p> <pre class="wiki">Index: module_tail.cpp =================================================================== --- module_tail.cpp (revision 49830) +++ module_tail.cpp (working copy) @@ -13,7 +13,9 @@ # endif # ifdef _MSC_VER +# define type_info ::type_info # include &lt;eh.h&gt; // for _set_se_translator() +# undef type_info # pragma warning(push) # pragma warning(disable:4297) # pragma warning(disable:4535) </pre> en-us Boost C++ Libraries /htdocs/site/boost.png https://svn.boost.org/trac10/ticket/2515 Trac 1.4.3