Boost logo

Boost :

Subject: [boost] [container] variadic template support in g++ 4.5.1
From: Richard Hadsell (hadsell_at_[hidden])
Date: 2014-08-20 11:40:31

I am trying to compile some of our code with Boost 1.56.0 on a Linux (Fedora 14) platform with this compiler:

gcc version 4.5.1 20100924 (Red Hat 4.5.1-4)

I apologize for using this ancient version of g++, but we're stuck with it for a while longer.

I get this error message:

In file included from .../boost/circular_buffer/details.hpp:19:0,
                  from .../boost/circular_buffer.hpp:56,
                  from ...:
/netDISKS/master/netmt/LINUX_INTF14/cgi/boost/1.56.0/Include/libboost/boost/container/allocator_traits.hpp: In static member function 'static void boost::container::allocator_traits<Alloc>::priv_construct(boost::false_type, Alloc&, T*, const Args& ...)':
/netDISKS/master/netmt/LINUX_INTF14/cgi/boost/1.56.0/Include/libboost/boost/container/allocator_traits.hpp:324:43: sorry, unimplemented: cannot expand 'Args ...' into a fixed-length argument list
/netDISKS/master/netmt/LINUX_INTF14/cgi/boost/1.56.0/Include/libboost/boost/container/allocator_traits.hpp:325:51: error: 'value' is not a valid template argument for type 'bool' because it is a non-constant expression
/netDISKS/master/netmt/LINUX_INTF14/cgi/boost/1.56.0/Include/libboost/boost/container/allocator_traits.hpp:325:57: error: invalid type in declaration before ';' token

Line 324 is in a block guarded by: #if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)

config/compiler/gcc.hpp defines BOOST_NO_CXX11_VARIADIC_TEMPLATES for g++ earlier than 4.4, which means it believes the code should be valid for 4.5.1.

Is there already a fix for this in development? Please, tell me what to do with my copy of 1.56.0.

Dick Hadsell			203-992-6320  Fax: 203-992-6001
Reply-to:			hadsell_at_[hidden]
Blue Sky Studios      
1 American Lane, Greenwich, CT 06831-2560

Boost list run by bdawes at, gregod at, cpdaniel at, john at