Opened 8 years ago

Closed 8 years ago

#10832 closed Bugs (fixed)

Boost.Variant: variadic templates are disabled on Clang

Reported by: Benoit Blanchon <benoit@…> Owned by: Antony Polukhin
Milestone: Boost 1.58.0 Component: variant
Version: Boost 1.57.0 Severity: Optimization
Keywords: clang Cc:

Description

Clang compiler defines GNUC=4 and GNUC_MINOR=2, which makes Boost.Variant believe it's building against an old GCC and therefore disable variadic templates.

See this code from variant_fwd.hpp:75:

#if defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) \
  || (defined(__GNUC__) && (__GNUC__ == 4) && (__GNUC_MINOR__ < 7)) \
  || (defined(_MSC_VER) && (_MSC_VER < 1800)) \
  || defined(BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE) \
  || defined (BOOST_VARIANT_NO_TYPE_SEQUENCE_SUPPORT)

#ifndef BOOST_VARIANT_DO_NOT_USE_VARIADIC_TEMPLATES
#   define BOOST_VARIANT_DO_NOT_USE_VARIADIC_TEMPLATES
#endif

#endif

Please include a special case when clang is defined.

Change History (2)

comment:1 by Antony Polukhin, 8 years ago

Milestone: To Be DeterminedBoost 1.58.0
Owner: changed from ebf to Antony Polukhin
Status: newassigned

Fixed in develop branch.

comment:2 by Antony Polukhin, 8 years ago

Resolution: fixed
Status: assignedclosed
Note: See TracTickets for help on using tickets.