Opened 8 years ago
Closed 8 years ago
#10124 closed Bugs (worksforme)
Compile error on Container with intel-win
Reported by: | Owned by: | John Maddock | |
---|---|---|---|
Milestone: | To Be Determined | Component: | config |
Version: | Boost 1.55.0 | Severity: | Problem |
Keywords: | intel.hpp | Cc: | igaztanaga@… |
Description
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) && (BOOST_INTEL_CXX_VERSION > 1200) . . . # undef BOOST_NO_CXX11_VARIADIC_TEMPLATES
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 nssfiler01.ins.intel.com/wref1/ref/vs2013/VC/include/utility(198): error: incomplete type is not allowed
_Ty1 first; the first stored value
detected during:
instantiation of class "std::pair<_Ty1, _Ty2> [with _Ty1=recursive_flat_map, _Ty2=recursive_flat_map]" at line 229 of "../../../boost/intrusive/detail/has_member_function_ca
llable_with.hpp"
instantiation of class "boost::container::container_detail::has_member_function_callable_with_select_on_container_copy_construction_impl<Fun, 1> [with Fun=const std::allocat
or<std::pair<recursive_flat_map, recursive_flat_map>>]" at line 270 of "../../../boost/intrusive/detail/has_member_function_callable_with.hpp"
instantiation of class "boost::container::container_detail::has_member_function_callable_with_select_on_container_copy_construction<Fun, Args...> [with Fun=const std::alloca
tor<std::pair<recursive_flat_map, recursive_flat_map>>, Args=<>]" at line 262 of "../../../boost/container/allocator_traits.hpp"
instantiation of class "boost::container::allocator_traits<Alloc> [with Alloc=std::allocator<std::pair<recursive_flat_map, recursive_flat_map>>]" at line 113 of "../../../bo
ost/container/flat_map.hpp"
instantiation of class "boost::container::flat_map<Key, T, Compare, Allocator> [with Key=recursive_flat_map, T=recursive_flat_map, Compare=std::less<recursive_flat_map>, All
ocator=std::allocator<std::pair<recursive_flat_map, recursive_flat_map>>]" at line 225 of "flat_tree_test.cpp"
compilation aborted for flat_tree_test.cpp (code 4)
Variadic templates v0.9 is supported since Intel Compiler Version 12.1. intel.hpp should be fixed to successful build Container:
diff boost/config/compiler/intel.hpp boost/config/compiler/intel.hpp_OLD 238,241c238 < < http://software.intel.com/en-us/articles/c0x-features-supported-by-intel-c-compiler/ < N2242 Variadic templates v0.9 is supported since Version 12.0 Update 6 or 12.1 < # undef BOOST_NO_CXX11_VARIADIC_TEMPLATES ---
# undef BOOST_NO_CXX11_VARIADIC_TEMPLATES
Change History (3)
comment:1 by , 8 years ago
Cc: | added |
---|---|
Component: | container → config |
Owner: | changed from | to
comment:2 by , 8 years ago
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.
comment:3 by , 8 years ago
Resolution: | → worksforme |
---|---|
Status: | new → closed |
This works for me with Intel-14.0 and current master. Closing down.
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:
http://www.boost.org/development/tests/develop/developer/container.html
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?