-
Notifications
You must be signed in to change notification settings - Fork 221
Fix autoptr/unique_ptr ifdef for VS2017. #146
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
Conversation
4b759fe to
1dc41f6
Compare
1dc41f6 to
a72848c
Compare
|
Can you elaborate a bit on a) the rationale for this patch and b) the symptoms you are observing ? |
|
The rationale is that auto_ptr is permanently removed from MS stl as of VS2017 update 3 per c++ standard, so any auto_ptr use is an unrescuable problem. You can't copy unique pointers so initialization must be done via move. I suspect this subtly breaks other things. |
|
And VS2017 doesn't set |
|
No :( |
|
Interestingly enough in spite of the failing integration tests on VS this does compile successfully on my machine with VS 2017 Update 3, so maybe its something that needs a work around that was a silently fixed compiler bug. |
|
Is it possible to get more versions of VS on appveyor? |
|
@garyfurnish : the problem only occurs when compiling in C++17 mode via I believe support for |
|
@MarcelRaad Well, there are really a few issues here.
But I think I know how to fix all of the current bugs on std:c++ latest. I only have 3 tests not passing right now, and they seem straightforward detection errors. Its just going to take some creativity to figure out how to deal with that VC bug. |
4eaddee to
bb08c3d
Compare
3913a50 to
c2424bc
Compare
9df1dee to
b1ccb5f
Compare
|
This appears to work correctly and pass tests on MSVC 2017 update 3 on a real machine with scons beta 3. I believe the appveyor errors are spurious and were there pre-modifications, so this should be almost good to go. |
| # if defined(__ICL) && __ICL < 600 | ||
| typedef boost::shared_ptr<T> smart_pointer; | ||
| # elif __cplusplus < 201103L | ||
| # elif BOOST_NO_CXX11_SMART_PTR |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
#elif defined(BOOST_NO_CXX11_SMART_PTR)
b1ccb5f to
911a05b
Compare
|
Bump. |
This fixes autoptr detection on VS2017.