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: newclosed

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.