Opened 9 years ago
Closed 9 years ago
#9061 closed Bugs (fixed)
Incorrect usage of `long long` in Boost.Intrusive
| Reported by: | Antony Polukhin | Owned by: | Ion Gaztañaga |
|---|---|---|---|
| Milestone: | Boost 1.55.0 | Component: | intrusive |
| Version: | Boost 1.54.0 | Severity: | Regression |
| Keywords: | long long intrusive containers | Cc: |
Description
boost/intrusive/detail/utilities.hpp uses long long even on C++03/C++98 compilers, which do not have support that type:
In file included from ../boost/intrusive/slist_hook.hpp:19,
from ../boost/intrusive/slist.hpp:21,
from ../boost/container/detail/multiallocation_chain.hpp:19,
from ../boost/container/detail/allocator_version_traits.hpp:22,
from ../boost/container/string.hpp:48,
from ../libs/conversion/test/lexical_cast_containers_test.cpp:13:
../boost/intrusive/detail/utilities.hpp:435:41: warning: use of C99 long long integer constant
In file included from ../boost/container/detail/utilities.hpp:28,
from ../boost/container/string.hpp:42,
from ../libs/conversion/test/lexical_cast_containers_test.cpp:13:
../boost/container/detail/type_traits.hpp:73: error: ISO C++ does not support 'long long'
In file included from ../boost/intrusive/slist_hook.hpp:19,
from ../boost/intrusive/slist.hpp:21,
from ../boost/container/detail/multiallocation_chain.hpp:19,
from ../boost/container/detail/allocator_version_traits.hpp:22,
from ../boost/container/string.hpp:48,
from ../libs/conversion/test/lexical_cast_containers_test.cpp:13:
../boost/intrusive/detail/utilities.hpp:562: error: ISO C++ does not support 'long long'
Change History (3)
follow-up: 2 comment:1 by , 9 years ago
comment:2 by , 9 years ago
Replying to igaztanaga:
Maybe you are activating some -Wno-long-long and compiling warnings as errors?
You're right. I've become over pedantic and compiled code with -Wlong-long
comment:3 by , 9 years ago
| Resolution: | → fixed |
|---|---|
| Status: | new → closed |
Note:
See TracTickets
for help on using tickets.

Those uses are protected with BOOST_HAS_LONG_LONG, so I don't understand why is this macro active when compiling in strict ISO 98 mode. Maybe you are activating some -Wno-long-long and compiling warnings as errors? I don't think there is a fix for this, unless boost/config is modified to detect long long warning as error was activated by command line.