Opened 11 years ago
Closed 11 years ago
#6062 closed Bugs (fixed)
Incompatibility boost.unordered and boost.asio.
| Reported by: | Owned by: | Daniel James | |
|---|---|---|---|
| Milestone: | Boost 1.48.0 | Component: | unordered |
| Version: | Boost Release Branch | Severity: | Showstopper |
| Keywords: | gcc icc | Cc: |
Description
Program:
#include <boost/asio.hpp>
#include <boost/unordered_map.hpp>
int main()
{
boost::unordered_map<void* , void* > umap;
return 0;
}
leads to errors (GCC 4.5.1):
phprus@notebook-hp6360b:~/science/workspace/Boost/testcase/1.48.0.beta1> gcc -I/home/phprus/opt/icmm/boost/1.48.0.beta1/include -c unorgered.cpp
In file included from /home/phprus/opt/icmm/boost/1.48.0.beta1/include/boost/unordered/detail/buckets.hpp:16:0,
from /home/phprus/opt/icmm/boost/1.48.0.beta1/include/boost/unordered/detail/table.hpp:10,
from /home/phprus/opt/icmm/boost/1.48.0.beta1/include/boost/unordered/detail/equivalent.hpp:14,
from /home/phprus/opt/icmm/boost/1.48.0.beta1/include/boost/unordered/unordered_map.hpp:18,
from /home/phprus/opt/icmm/boost/1.48.0.beta1/include/boost/unordered_map.hpp:16,
from unorgered.cpp:2:
/home/phprus/opt/icmm/boost/1.48.0.beta1/include/boost/unordered/detail/emplace_args.hpp:135:1: error: expected unqualified-id before numeric constant
/home/phprus/opt/icmm/boost/1.48.0.beta1/include/boost/unordered/detail/emplace_args.hpp:135:1: error: expected ‘;’ before numeric constant
/home/phprus/opt/icmm/boost/1.48.0.beta1/include/boost/unordered/detail/emplace_args.hpp:135:1: error: expected unqualified-id before numeric constant
/home/phprus/opt/icmm/boost/1.48.0.beta1/include/boost/unordered/detail/emplace_args.hpp:135:1: error: expected unqualified-id before numeric constant
/home/phprus/opt/icmm/boost/1.48.0.beta1/include/boost/unordered/detail/emplace_args.hpp:135:1: error: expected ‘)’ before numeric constant
/home/phprus/opt/icmm/boost/1.48.0.beta1/include/boost/unordered/detail/emplace_args.hpp:135:1: error: expected unqualified-id before numeric constant
/home/phprus/opt/icmm/boost/1.48.0.beta1/include/boost/unordered/detail/emplace_args.hpp:135:1: error: expected ‘;’ before numeric constant
/home/phprus/opt/icmm/boost/1.48.0.beta1/include/boost/unordered/detail/emplace_args.hpp:135:1: error: expected unqualified-id before numeric constant
/home/phprus/opt/icmm/boost/1.48.0.beta1/include/boost/unordered/detail/emplace_args.hpp:135:1: error: expected unqualified-id before numeric constant
/home/phprus/opt/icmm/boost/1.48.0.beta1/include/boost/unordered/detail/emplace_args.hpp:135:1: error: expected ‘)’ before numeric constant
/home/phprus/opt/icmm/boost/1.48.0.beta1/include/boost/unordered/detail/emplace_args.hpp:135:1: error: expected unqualified-id before numeric constant
/home/phprus/opt/icmm/boost/1.48.0.beta1/include/boost/unordered/detail/emplace_args.hpp:135:1: error: expected ‘;’ before numeric constant
/home/phprus/opt/icmm/boost/1.48.0.beta1/include/boost/unordered/detail/emplace_args.hpp:135:1: error: expected unqualified-id before numeric constant
/home/phprus/opt/icmm/boost/1.48.0.beta1/include/boost/unordered/detail/emplace_args.hpp:135:1: error: expected unqualified-id before numeric constant
/home/phprus/opt/icmm/boost/1.48.0.beta1/include/boost/unordered/detail/emplace_args.hpp:135:1: error: expected ‘)’ before numeric constant
/home/phprus/opt/icmm/boost/1.48.0.beta1/include/boost/unordered/detail/emplace_args.hpp:135:1: error: expected unqualified-id before numeric constant
/home/phprus/opt/icmm/boost/1.48.0.beta1/include/boost/unordered/detail/emplace_args.hpp:135:1: error: expected ‘;’ before numeric constant
/home/phprus/opt/icmm/boost/1.48.0.beta1/include/boost/unordered/detail/emplace_args.hpp:135:1: error: expected unqualified-id before numeric constant
/home/phprus/opt/icmm/boost/1.48.0.beta1/include/boost/unordered/detail/emplace_args.hpp:135:1: error: expected unqualified-id before numeric constant
/home/phprus/opt/icmm/boost/1.48.0.beta1/include/boost/unordered/detail/emplace_args.hpp:135:1: error: expected ‘)’ before numeric constant
/home/phprus/opt/icmm/boost/1.48.0.beta1/include/boost/unordered/detail/emplace_args.hpp:135:1: error: expected unqualified-id before numeric constant
/home/phprus/opt/icmm/boost/1.48.0.beta1/include/boost/unordered/detail/emplace_args.hpp:135:1: error: expected ‘;’ before numeric constant
/home/phprus/opt/icmm/boost/1.48.0.beta1/include/boost/unordered/detail/emplace_args.hpp:135:1: error: expected unqualified-id before numeric constant
/home/phprus/opt/icmm/boost/1.48.0.beta1/include/boost/unordered/detail/emplace_args.hpp:135:1: error: expected unqualified-id before numeric constant
/home/phprus/opt/icmm/boost/1.48.0.beta1/include/boost/unordered/detail/emplace_args.hpp:135:1: error: expected ‘)’ before numeric constant
/home/phprus/opt/icmm/boost/1.48.0.beta1/include/boost/unordered/detail/emplace_args.hpp:135:1: error: expected unqualified-id before numeric constant
/home/phprus/opt/icmm/boost/1.48.0.beta1/include/boost/unordered/detail/emplace_args.hpp:135:1: error: expected ‘;’ before numeric constant
/home/phprus/opt/icmm/boost/1.48.0.beta1/include/boost/unordered/detail/emplace_args.hpp:135:1: error: expected unqualified-id before numeric constant
/home/phprus/opt/icmm/boost/1.48.0.beta1/include/boost/unordered/detail/emplace_args.hpp:135:1: error: expected unqualified-id before numeric constant
/home/phprus/opt/icmm/boost/1.48.0.beta1/include/boost/unordered/detail/emplace_args.hpp:135:1: error: expected ‘)’ before numeric constant
/home/phprus/opt/icmm/boost/1.48.0.beta1/include/boost/unordered/detail/emplace_args.hpp:135:1: error: expected unqualified-id before numeric constant
/home/phprus/opt/icmm/boost/1.48.0.beta1/include/boost/unordered/detail/emplace_args.hpp:135:1: error: expected ‘;’ before numeric constant
/home/phprus/opt/icmm/boost/1.48.0.beta1/include/boost/unordered/detail/emplace_args.hpp:135:1: error: expected unqualified-id before numeric constant
/home/phprus/opt/icmm/boost/1.48.0.beta1/include/boost/unordered/detail/emplace_args.hpp:135:1: error: expected unqualified-id before numeric constant
/home/phprus/opt/icmm/boost/1.48.0.beta1/include/boost/unordered/detail/emplace_args.hpp:135:1: error: expected ‘)’ before numeric constant
/home/phprus/opt/icmm/boost/1.48.0.beta1/include/boost/unordered/detail/emplace_args.hpp:135:1: error: expected unqualified-id before numeric constant
/home/phprus/opt/icmm/boost/1.48.0.beta1/include/boost/unordered/detail/emplace_args.hpp:135:1: error: expected ‘;’ before numeric constant
/home/phprus/opt/icmm/boost/1.48.0.beta1/include/boost/unordered/detail/emplace_args.hpp:135:1: error: expected unqualified-id before numeric constant
/home/phprus/opt/icmm/boost/1.48.0.beta1/include/boost/unordered/detail/emplace_args.hpp:135:1: error: expected unqualified-id before numeric constant
/home/phprus/opt/icmm/boost/1.48.0.beta1/include/boost/unordered/detail/emplace_args.hpp:135:1: error: expected ‘)’ before numeric constant
/home/phprus/opt/icmm/boost/1.48.0.beta1/include/boost/unordered/detail/emplace_args.hpp:135:1: error: expected unqualified-id before numeric constant
/home/phprus/opt/icmm/boost/1.48.0.beta1/include/boost/unordered/detail/emplace_args.hpp:135:1: error: expected ‘;’ before numeric constant
/home/phprus/opt/icmm/boost/1.48.0.beta1/include/boost/unordered/detail/emplace_args.hpp:135:1: error: expected unqualified-id before numeric constant
/home/phprus/opt/icmm/boost/1.48.0.beta1/include/boost/unordered/detail/emplace_args.hpp:135:1: error: expected unqualified-id before numeric constant
/home/phprus/opt/icmm/boost/1.48.0.beta1/include/boost/unordered/detail/emplace_args.hpp:135:1: error: expected ‘)’ before numeric constant
or errors (Intel C++ 12.0.4):
phprus@notebook-hp6360b:~/science/workspace/Boost/testcase/1.48.0.beta1> icpc -I/home/phprus/opt/icmm/boost/1.48.0.beta1/include -c unorgered.cpp /home/phprus/opt/icmm/boost/1.48.0.beta1/include/boost/move/move.hpp(236): warning #1292: attribute "__may_alias__" ignored
} BOOST_MOVE_ATTRIBUTE_MAY_ALIAS;
^
/home/phprus/opt/icmm/boost/1.48.0.beta1/include/boost/unordered/detail/emplace_args.hpp(134): error: expected an identifier
BOOST_PP_REPEAT_FROM_TO(1, BOOST_UNORDERED_EMPLACE_LIMIT, BOOST_UNORDERED_EARGS,
^
/home/phprus/opt/icmm/boost/1.48.0.beta1/include/boost/unordered/detail/emplace_args.hpp(134): error: expected a declaration
BOOST_PP_REPEAT_FROM_TO(1, BOOST_UNORDERED_EMPLACE_LIMIT, BOOST_UNORDERED_EARGS,
^
/home/phprus/opt/icmm/boost/1.48.0.beta1/include/boost/unordered/detail/emplace_args.hpp(134): error: invalid type for a bit field
BOOST_PP_REPEAT_FROM_TO(1, BOOST_UNORDERED_EMPLACE_LIMIT, BOOST_UNORDERED_EARGS,
^
/home/phprus/opt/icmm/boost/1.48.0.beta1/include/boost/unordered/detail/emplace_args.hpp(134): error: identifier "a0" is undefined
BOOST_PP_REPEAT_FROM_TO(1, BOOST_UNORDERED_EMPLACE_LIMIT, BOOST_UNORDERED_EARGS,
^
/home/phprus/opt/icmm/boost/1.48.0.beta1/include/boost/unordered/detail/emplace_args.hpp(134): error: function call is not allowed in a constant expression
BOOST_PP_REPEAT_FROM_TO(1, BOOST_UNORDERED_EMPLACE_LIMIT, BOOST_UNORDERED_EARGS,
^
/home/phprus/opt/icmm/boost/1.48.0.beta1/include/boost/unordered/detail/emplace_args.hpp(134): error: expression must have a constant value
BOOST_PP_REPEAT_FROM_TO(1, BOOST_UNORDERED_EMPLACE_LIMIT, BOOST_UNORDERED_EARGS,
^
/home/phprus/opt/icmm/boost/1.48.0.beta1/include/boost/unordered/detail/emplace_args.hpp(134): error: expected a ";"
BOOST_PP_REPEAT_FROM_TO(1, BOOST_UNORDERED_EMPLACE_LIMIT, BOOST_UNORDERED_EARGS,
^
/home/phprus/opt/icmm/boost/1.48.0.beta1/include/boost/unordered/detail/emplace_args.hpp(134): error: expected a ")"
BOOST_PP_REPEAT_FROM_TO(1, BOOST_UNORDERED_EMPLACE_LIMIT, BOOST_UNORDERED_EARGS,
^
/home/phprus/opt/icmm/boost/1.48.0.beta1/include/boost/unordered/detail/emplace_args.hpp(134): error: "B1" has already been declared in the current scope
BOOST_PP_REPEAT_FROM_TO(1, BOOST_UNORDERED_EMPLACE_LIMIT, BOOST_UNORDERED_EARGS,
^
/home/phprus/opt/icmm/boost/1.48.0.beta1/include/boost/unordered/detail/emplace_args.hpp(134): warning #411: class template "boost::unordered::detail::emplace_args2<A0, A1>" defines no constructor to initialize the following:
reference member "boost::unordered::detail::emplace_args2<A0, A1>::a1"
BOOST_PP_REPEAT_FROM_TO(1, BOOST_UNORDERED_EMPLACE_LIMIT, BOOST_UNORDERED_EARGS,
^
/home/phprus/opt/icmm/boost/1.48.0.beta1/include/boost/array.hpp(121): warning #279: controlling expression is constant
BOOST_ASSERT( i < N && "out of range" );
^
compilation aborted for unorgered.cpp (code 2)
OS: openSUSE 11.4 x86_64.
Attachments (1)
Change History (5)
comment:1 by , 11 years ago
| Status: | new → assigned |
|---|
comment:2 by , 11 years ago
In release 1.48.0 this bug will be fixed?
Please send a patch for the beta-version that I could test remaining, used by me, Boost libraries.
comment:3 by , 11 years ago
by , 11 years ago
| Attachment: | unordered.patch added |
|---|
Note:
See TracTickets
for help on using tickets.

Looks like the macro
B0is defined by something included by asio. I'll rename it, won't be in the beta though.