Boost C++ Libraries: Ticket #10124: Compile error on Container with intel-win https://svn.boost.org/trac10/ticket/10124 <p> Intel Windows compiler (12.1, 13.0, 14.0, 15.0) fails on build of Boost 1.55.0 container lib because intel.hpp contains #if defined(BOOST_INTEL_STDCXX0X) &amp;&amp; (BOOST_INTEL_CXX_VERSION &gt; 1200) . . . # undef BOOST_NO_CXX11_VARIADIC_TEMPLATES </p> <p> icl /nologo -TP /Zc:forScope /Zc:wchar_t -D_SECURE_SCL=0 /EHs -c -DBOOST_ALL_NO_LIB=1 "-I../../.." flat_tree_test.cpp flat_tree_test.cpp <em>nssfiler01.ins.intel.com/wref1/ref/vs2013/VC/include/utility(198): error: incomplete type is not allowed </em></p> <blockquote> <p> _Ty1 first; <em> the first stored value </em></p> <blockquote> <p> <sup> </sup></p> </blockquote> <p> detected during: </p> <blockquote> <p> instantiation of class "std::pair&lt;_Ty1, _Ty2&gt; [with _Ty1=recursive_flat_map, _Ty2=recursive_flat_map]" at line 229 of "../../../boost/intrusive/detail/has_member_function_ca </p> </blockquote> </blockquote> <p> llable_with.hpp" </p> <blockquote> <p> instantiation of class "boost::container::container_detail::has_member_function_callable_with_select_on_container_copy_construction_impl&lt;Fun, 1&gt; [with Fun=const std::allocat </p> </blockquote> <p> or&lt;std::pair&lt;recursive_flat_map, recursive_flat_map&gt;&gt;]" at line 270 of "../../../boost/intrusive/detail/has_member_function_callable_with.hpp" </p> <blockquote> <p> instantiation of class "boost::container::container_detail::has_member_function_callable_with_select_on_container_copy_construction&lt;Fun, Args...&gt; [with Fun=const std::alloca </p> </blockquote> <p> tor&lt;std::pair&lt;recursive_flat_map, recursive_flat_map&gt;&gt;, Args=&lt;&gt;]" at line 262 of "../../../boost/container/allocator_traits.hpp" </p> <blockquote> <p> instantiation of class "boost::container::allocator_traits&lt;Alloc&gt; [with Alloc=std::allocator&lt;std::pair&lt;recursive_flat_map, recursive_flat_map&gt;&gt;]" at line 113 of "../../../bo </p> </blockquote> <p> ost/container/flat_map.hpp" </p> <blockquote> <p> instantiation of class "boost::container::flat_map&lt;Key, T, Compare, Allocator&gt; [with Key=recursive_flat_map, T=recursive_flat_map, Compare=std::less&lt;recursive_flat_map&gt;, All </p> </blockquote> <p> ocator=std::allocator&lt;std::pair&lt;recursive_flat_map, recursive_flat_map&gt;&gt;]" at line 225 of "flat_tree_test.cpp" </p> <p> compilation aborted for flat_tree_test.cpp (code 4) </p> <p> Variadic templates v0.9 is supported since Intel Compiler Version 12.1. intel.hpp should be fixed to successful build Container: </p> <p> diff boost/config/compiler/intel.hpp boost/config/compiler/intel.hpp_OLD 238,241c238 &lt; &lt; <em> <a class="ext-link" href="http://software.intel.com/en-us/articles/c0x-features-supported-by-intel-c-compiler/"><span class="icon">​</span>http://software.intel.com/en-us/articles/c0x-features-supported-by-intel-c-compiler/</a> &lt; </em> N2242 Variadic templates v0.9 is supported since Version 12.0 Update 6 or 12.1 &lt; <em># undef BOOST_NO_CXX11_VARIADIC_TEMPLATES --- </em></p> <blockquote class="citation"> <p> # undef BOOST_NO_CXX11_VARIADIC_TEMPLATES </p> </blockquote> en-us Boost C++ Libraries /htdocs/site/boost.png https://svn.boost.org/trac10/ticket/10124 Trac 1.4.3 Ion Gaztañaga Sun, 15 Jun 2014 07:17:00 GMT owner, component changed; cc set https://svn.boost.org/trac10/ticket/10124#comment:1 https://svn.boost.org/trac10/ticket/10124#comment:1 <ul> <li><strong>cc</strong> <span class="trac-author">igaztanaga@…</span> added </li> <li><strong>owner</strong> changed from <span class="trac-author">Ion Gaztañaga</span> to <span class="trac-author">John Maddock</span> </li> <li><strong>component</strong> <span class="trac-field-old">container</span> → <span class="trac-field-new">config</span> </li> </ul> <p> I'm reassigning con Config to check if BOOST_NO_CXX11_VARIADIC_TEMPLATES is properly detected in intel.hpp, but even with no variadic templates support the Container should be fine in those compilers. Regression report seems fine in Intel 13.1 with latest develop/master code: </p> <p> <a href="http://www.boost.org/development/tests/develop/developer/container.html">http://www.boost.org/development/tests/develop/developer/container.html</a> </p> <p> I don't have access to that compiler, would you please try master branch code and report a new bug if you still obtain a compilation error? </p> Ticket Elmira Semenova <elmira.a.semenova@…> Tue, 17 Jun 2014 15:47:31 GMT <link>https://svn.boost.org/trac10/ticket/10124#comment:2 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/10124#comment:2</guid> <description> <p> I’ve checked master code, Container is OK with icl 14.0, 15.0, with icl 13.0 MSVS2010 (failed with 13.0 MSVS2012, but it is another problem). Thanks. </p> </description> <category>Ticket</category> </item> <item> <dc:creator>John Maddock</dc:creator> <pubDate>Wed, 18 Jun 2014 17:18:52 GMT</pubDate> <title>status changed; resolution set https://svn.boost.org/trac10/ticket/10124#comment:3 https://svn.boost.org/trac10/ticket/10124#comment:3 <ul> <li><strong>status</strong> <span class="trac-field-old">new</span> → <span class="trac-field-new">closed</span> </li> <li><strong>resolution</strong> → <span class="trac-field-new">worksforme</span> </li> </ul> <p> This works for me with Intel-14.0 and current master. Closing down. </p> Ticket