Opened 10 years ago

Closed 10 years ago

#7203 closed Bugs (fixed)

Boost Proto conflict with Asio / Linux

Reported by: ramon.casellas@… Owned by: Eric Niebler
Milestone: Boost 1.51.0 Component: proto
Version: Boost Development Trunk Severity: Regression
Keywords: proto B0 asio Linux conflict Cc:

Description

Dear Boost Proto maintainer,

This bug (or variation) seems to be open for boost trunk and release (1.51). The problem seems to be that B0 can be defined in Linux (e.g. included via asio)

./asm-generic/termbits.h:113:2619:#define  B0   0000000         /* hang up */
./rpcsvc/rex.h:53:809:#define B0 0
./x86_64-linux-gnu/bits/termios.h:122:3149:#define  B0  0000000         /* hang up */

Can something be done at the Boost Proto level? Thanks, R.

http://boost.2283326.n4.nabble.com/spirit2-conflict-with-asio-header-td2659901.html

/adnet/boost-1.51.0/include/boost/proto/transform/detail/preprocessed/pack_impl.hpp:23:31: error: expected nested-name-specifier before numeric constant
/adnet/boost-1.51.0/include/boost/proto/transform/detail/preprocessed/pack_impl.hpp:23:31: error: expected ‘>’ before numeric constant
/adnet/boost-1.51.0/include/boost/proto/transform/detail/preprocessed/pack_impl.hpp:24:20: error: template parameters not used in partial specialization:
/adnet/boost-1.51.0/include/boost/proto/transform/detail/preprocessed/pack_impl.hpp:24:20: error:         ‘<anonymous>’
/adnet/boost-1.51.0/include/boost/proto/transform/detail/preprocessed/pack_impl.hpp:28:31: error: expected nested-name-specifier before numeric constant
/adnet/boost-1.51.0/include/boost/proto/transform/detail/preprocessed/pack_impl.hpp:28:31: error: expected ‘>’ before numeric constant
/adnet/boost-1.51.0/include/boost/proto/transform/detail/preprocessed/pack_impl.hpp:29:34: error: ‘B1’ was not declared in this scope
/adnet/boost-1.51.0/include/boost/proto/transform/detail/preprocessed/pack_impl.hpp:29:36: error: wrong number of template arguments (2, should be 1)
/adnet/boost-1.51.0/include/boost/proto/transform/detail/preprocessed/pack_impl.hpp:22:20: error: provided for ‘template<class Ret> template<int <anonymous> > struct boost::proto::detail::expand_pattern_rest_0<Ret>::cat’
/adnet/boost-1.51.0/include/boost/proto/transform/detail/preprocessed/pack_impl.hpp:33:31: error: expected nested-name-specifier before numeric constant
/adnet/boost-1.51.0/include/boost/proto/transform/detail/preprocessed/pack_impl.hpp:33:31: error: expected ‘>’ before numeric constant
/adnet/boost-1.51.0/include/boost/proto/transform/detail/preprocessed/pack_impl.hpp:34:34: error: ‘B1’ was not declared in this scope
/adnet/boost-1.51.0/include/boost/proto/transform/detail/preprocessed/pack_impl.hpp:34:39: error: ‘B2’ was not declared in this scope

Replacing B0 with BB0 fixes it

Change History (2)

comment:1 by Eric Niebler, 10 years ago

(In [79918]) don't use B0, conflict with a macro on Linux, references #7203

comment:2 by Eric Niebler, 10 years ago

Resolution: fixed
Status: newclosed

(In [79934]) merge [79918] from trunk, fixes #7203

Note: See TracTickets for help on using tickets.