Boost C++ Libraries: Ticket #12634: optional_config.hpp: needs update for Oracle Developer Studio compiler https://svn.boost.org/trac10/ticket/12634 <p> Test libs/bimap/test/../example/bimap_and_boost/xpressive.cpp fails with Oracle Developer Studio compiler in -std=c++11 mode as follows: </p> <blockquote> <p> "CC" -std=c++11 -temp=/tmp/bn -xO4 -mt -erroff=%none -m32 -KPIC -DBOOST_ALL_NO_LIB=1 -DNDEBUG -I".." -c -o "/export/home/sstrunk-tester/boost_regression/boost_regression_develop/boost_sparc-S2_cpp11/results/boost/bin.v2/libs/bimap/test/xpressive.test/sun-12.5_next_cpp11/release/threading-multi/xpressive.o" "../libs/bimap/test/../example/bimap_and_boost/xpressive.cpp" </p> </blockquote> <p> "../boost/proto/detail/preprocessed/expr_variadic.hpp", line 687: Warning: A class with a reference member lacks a user-defined constructor, which can lead to errors. </p> <p> ... </p> <p> "../boost/xpressive/match_results.hpp", line 747: Error: Overloading ambiguity between "boost::optional&lt;<span class="underline">gnu_cxx::</span>normal_iterator&lt;const char*, std::string&gt;&gt;::operator=&lt;<span class="underline">gnu_cxx::</span>normal_iterator&lt;const char*, std::string&gt;&amp;&gt;(<span class="underline">gnu_cxx::</span>normal_iterator&lt;const char*, std::string&gt;&amp;)" and "boost::optional&lt;<span class="underline">gnu_cxx::</span>normal_iterator&lt;const char*, std::string&gt;&gt;::operator=&lt;<span class="underline">gnu_cxx::</span>normal_iterator&lt;const char*, std::string&gt;&amp;&gt;(<span class="underline">gnu_cxx::</span>normal_iterator&lt;const char*, std::string&gt;&amp;)". </p> <p> ... </p> <p> See <a href="http://www.boost.org/development/tests/develop/developer/output/oracle-sparc-S2-12-5_next-cpp11-boost-bin-v2-libs-bimap-test-xpressive-test-sun-12-5_next_cpp11-release-threading-multi.html">http://www.boost.org/development/tests/develop/developer/output/oracle-sparc-S2-12-5_next-cpp11-boost-bin-v2-libs-bimap-test-xpressive-test-sun-12-5_next_cpp11-release-threading-multi.html</a> </p> <p> for details. </p> <p> The following diff resolves the issue: % !diff diff ./optional_config.hpp optional_config.hpp_orig 47c47 </p> <table class="wiki"> <tr>&lt; #if (defined(<span class="underline">GNUC</span>) <td> defined(<span class="underline">SUNPROC_CC)) &amp;&amp; !defined(</span>INTEL_COMPILER) </td></tr></table> <p> --- </p> <blockquote class="citation"> <p> #if defined(<span class="underline">GNUC</span>) &amp;&amp; !defined(<span class="underline">INTEL_COMPILER) </span></p> </blockquote> <p> 99c99 &lt; #if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) &amp;&amp; !defined(BOOST_NO_CXX11_DECLTYPE) &amp;&amp; !BOOST_WORKAROUND(BOOST_MSVC, &lt; 1800) &amp;&amp; !BOOST_WORKAROUND(BOOST_GCC_VERSION, &lt; 40500) --- </p> <blockquote class="citation"> <p> #if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) &amp;&amp; !defined(BOOST_NO_CXX11_DECLTYPE) &amp;&amp; !BOOST_WORKAROUND(BOOST_MSVC, &lt; 1800) &amp;&amp; !BOOST_WORKAROUND(BOOST_GCC_VERSION, &lt; 40500) &amp;&amp; !defined(<span class="underline">SUNPRO_CC) </span></p> </blockquote> <p> 100a101 </p> <blockquote class="citation"> <blockquote> <p> <em> I also disable SUNPRO, as it seems not to support type_traits correctly </em></p> </blockquote> </blockquote> <p> 105c106 &lt; #if (defined _MSC_FULL_VER) &amp;&amp; (_MSC_FULL_VER &lt; 190023026) --- </p> <blockquote class="citation"> <p> #if defined <span class="underline">SUNPRO_CC </span></p> </blockquote> <p> 106a108,109 </p> <blockquote class="citation"> <p> #elif (defined _MSC_FULL_VER) &amp;&amp; (_MSC_FULL_VER &lt; 190023026) # define BOOST_OPTIONAL_DETAIL_NO_SFINAE_FRIENDLY_CONSTRUCTORS </p> </blockquote> <p> $ </p> en-us Boost C++ Libraries /htdocs/site/boost.png https://svn.boost.org/trac10/ticket/12634 Trac 1.4.3