Opened 7 years ago

Closed 7 years ago

#11744 closed Bugs (invalid)

Preprocessor error ./boost/atomic/detail/int_sizes.hpp:107:55: error: missing binary operator before token "("

Reported by: ramanats@… Owned by: timblechmann
Milestone: To Be Determined Component: atomic
Version: Boost 1.59.0 Severity: Problem
Keywords: atomic preprocessor missing binary operator Cc:

Description

Trying to compile Boost atomic 1.59 with g++ version 4.1.2, gave me this error:

./boost/atomic/detail/int_sizes.hpp:107:55: error: missing binary operator before token "(" ./boost/atomic/detail/int_sizes.hpp:137:2: error: #error Boost.Atomic: Failed to determine builtin integer sizes, the target platform is not supported. Please, report to the developers.

This is the line it is complaining about: #elif (BOOST_ATOMIC_DETAIL_ULLONG_MAX + 0) == UINT64_C(0xffffffffffffffff)

Is there an issue with the cast.

Change History (3)

comment:1 by anonymous, 7 years ago

My platform is RH Linux 32 bit

uname -a

Linux linux51-dev03.comverse-in.com 2.6.18-53.el5PAE #1 SMP Wed Oct 10 16:48:18 EDT 2007 i686

cat /etc/redhat-release

Red Hat Enterprise Linux Server release 5.1 (Tikanga)

comment:2 by anonymous, 7 years ago

The issue is now resolved.

The problem occurred because I only added boost/atomic and boost/detail subdirectories in my include path. Once I included the entire boost directory, this error went away.

I was trying to get a subset of hpp files just for using the atomic library (trying to avoid copying unwanted 3p library headers that I don't need). But from reading documentation about header-only libraries, looks like I have to copy the entire boost directory.

Please close this ticket.

comment:3 by Andrey Semashev, 7 years ago

Resolution: → invalid
Status: new → closed

Boost.Atomic is not header-only, although most of the time you don't have to link with it. You can see the headers that comprise the library on ​GitHub, you will need all these files to use the library, along with dependencies.

Note: See TracTickets for help on using tickets.