Opened 8 years ago

Closed 8 years ago

#10124 closed Bugs (worksforme)

Compile error on Container with intel-win

Reported by: Elmira Semenova <elmira.a.semenova@…> 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 Ion Gaztañaga, 8 years ago

Cc: igaztanaga@… added
Component: containerconfig
Owner: changed from Ion Gaztañaga to John Maddock

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?

comment:2 by Elmira Semenova <elmira.a.semenova@…>, 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 John Maddock, 8 years ago

Resolution: worksforme
Status: newclosed

This works for me with Intel-14.0 and current master. Closing down.

Note: See TracTickets for help on using tickets.