-
Notifications
You must be signed in to change notification settings - Fork 46
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Partial Revert "std::tuple support (Resolving #103) (#104)" #112
base: develop
Are you sure you want to change the base?
Conversation
Since we're in bug-fix period for 1.81.0, I wouldn't want to revert a whole PR, which someone maybe rely on already |
@sgn Does changing the That's on line 113. |
With % cat test.cpp
#include <boost/phoenix/stl/tuple.hpp>
int func();
int main() {
return func();
}
@selene /tmp
% cat other.cpp
#include <boost/phoenix/stl/tuple.hpp>
int func();
int func() {
return 0;
}
@selene /tmp
% g++ -fPIC -std=c++14 -I /home/boost/include test.cpp other.cpp -o abc --- boost/phoenix/stl/tuple.hpp.orig 2022-11-29 00:42:17.884124579 +0700
+++ boost/phoenix/stl/tuple.hpp 2022-11-29 00:40:35.163960550 +0700
@@ -110,7 +110,7 @@
namespace placeholders {
#define BOOST_PP_LOCAL_LIMITS (1, BOOST_PHOENIX_ARG_LIMIT)
#define BOOST_PP_LOCAL_MACRO(N) \
- auto uarg##N = \
+ const auto uarg##N = \
boost::phoenix::get_<(N)-1>(boost::phoenix::placeholders::arg1);
#include BOOST_PP_LOCAL_ITERATE()
} |
I think the reason this works is that |
The checks are failing :-( |
56f2d22
to
99b3bdf
Compare
OK, I changed it into internal linkage. |
OOC: what is the problem with |
|
Ah, I see... So it needs to be |
Did you have an issue with making the |
No |
As it stands this PR doesn't use |
has this been fixed ? Seems the release of 1.81 contains this problem,and breaks our code base ? |
Can we please fix this? Perhaps we should just revert to the latest stable state. |
Are the failed CI checks connected to the contents of this PR at all? |
Same error:
I think no, they ain't connected. |
8b6a9c2 (std::tuple support (Resolving boostorg#103) (boostorg#104), 2021-03-11) put uarg##N in all translation units, which includes boost/phoenix/stl/tuple.hpp or boost/phoenix/stl.hpp, with external linkage. Thus, we'll run into below error: > multiple definition of `boost::phoenix::placeholders::uarg1' Change it to internal linkage.
99b3bdf
to
cc9bc23
Compare
This happened to me with MSVC 2019 and Boost 1.81.0. Including
|
This partial reverts commit 8b6a9c2.
The being-reverted-change put uarg{1..10} in all translation unit that include "boost/phoenix/stl.hpp", should that file is being included by multiple translation unit, each of those translation units will have one definition of each of uarg{1..10}. Thus, we'll run into below error:
Partial Revert the change in question by removing
"boost/phoenix/stl/tuple.hpp" from "boost/phoenix/stl.hpp".
Fix #111