-
Notifications
You must be signed in to change notification settings - Fork 10.2k
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
googletest uses std::tr1 which will be deprecated in VS 2017 #1111
Comments
PR #811 should fix this. But for some reason, no one wants to merge it |
We're just working on some high-priority internal stuff right now.
This should be ok to merge. Sorry for the neglect.
…On Wed, Jun 7, 2017 at 6:28 PM, Arkady Shapkin ***@***.***> wrote:
PR #811 <#811> should fix this.
But for some reason, no one wants to merge it
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
<#1111 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AINnRJYWSOj4c-tlaVKnNRBR_dcy2V5Oks5sByQigaJpZM4NyNdw>
.
|
Seconding this, today I'm forced to pass |
Stephan, "googletest's use of std::tr1" where? Those uses should be hidden behind platform-version #ifdef directives, please let me know if there's a place this is being done incorrectly. IIRC, PR #811 is doing more than this, dealing with CMake etc, so it's hard to know it's the right answer for the simpler tr1 migration. |
In MSVC's STL, I'm deprecating the namespace by saying I think
std::tr1 even for modern MSVC.
|
Sorry, as a user I still get this error in the Visual Studio 2017 IDE compile. I have a fresh gtest git clone. Using the compiler outside of the IDE works fine to compile gtest though. Unsure what the default setting is. To get gtest to compile you need to apply -std:c++14 |
Can be closed. PR #1218 fixed this |
Just FYI, if you're a user consuming gtest 1.8.0 and cannot/don't want to patch it, when invoking CMake for it you can use:
To keep building. It's a work-around. |
Still same problem on master build... |
Same here... building from a fresh git clone using VS2017 triggers hundreds of errors about std::tr1. |
* Using the latest (and just released) version 15.5.0 of VS2017 introduces the following error into the UnitTests project ... "error C4996: 'std::tr1': warning STL4002: The non-Standard std::tr1 namespace and TR1-only machinery are deprecated and will be REMOVED. You can define _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING to acknowledge that you have received this warning. " * MSDN claims that this is a C++17 language standards issue, but I was not able to solve this problem by specifying the use of the C++14 standard language (the Properties control for this is likewise a new feature of version 15.5.0) See... https://docs.microsoft.com/en-us/cpp/cpp-conformance-improvements-2017 * The only simple, short-term solution that I could come up with was to simply follow the suggestion of defining the _SILENCE_TR1_xxx token as given above. * Even though this problem has been discussed in the GoogleTest github forum since at least 6 June, the underlying problem remains un-resolved at this hour ... See google/googletest#1111 See google/googletest#1320 See google/googletest#1311 * I will assume that Google's resolution of this problem will require WinMerge to adopt the newest GoogleTest framework (which is likely a good idea anyway). I will keep an eye on their progress and resolution and advise accordingly. In the meantime, this kludge allows WinMerge's UnitTests project to compile and execute correctly.
Will this trigger a new release? I now have the problem that our organization requires 'official' releases for third party software but we also keep all software (including Visual studio) up to date |
Visual Studio 17, tools update 2 (15.5) makes the use of std::tr1 deprecated and an error at /W3. This ignores that error and should be removed once googletest fixes this upstream. see: google/googletest#1111
The 1.8.0 release has issues with MSVC 2017. The usage of tr1 produces a warning, and flags are enable so that warnings are enabled. The selected version of GoogleTest is the same one that ITK is using has a fix for the issue. google/googletest#1111
* Using the latest (and just released) version 15.5.0 of VS2017 introduces the following error into the UnitTests project ... "error C4996: 'std::tr1': warning STL4002: The non-Standard std::tr1 namespace and TR1-only machinery are deprecated and will be REMOVED. You can define _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING to acknowledge that you have received this warning. " * MSDN claims that this is a C++17 language standards issue, but I was not able to solve this problem by specifying the use of the C++14 standard language (the Properties control for this is likewise a new feature of version 15.5.0) See... https://docs.microsoft.com/en-us/cpp/cpp-conformance-improvements-2017 * The only simple, short-term solution that I could come up with was to simply follow the suggestion of defining the _SILENCE_TR1_xxx token as given above. * Even though this problem has been discussed in the GoogleTest github forum since at least 6 June, the underlying problem remains un-resolved at this hour ... See google/googletest#1111 See google/googletest#1320 See google/googletest#1311 * I will assume that Google's resolution of this problem will require WinMerge to adopt the newest GoogleTest framework (which is likely a good idea anyway). I will keep an eye on their progress and resolution and advise accordingly. In the meantime, this kludge allows WinMerge's UnitTests project to compile and execute correctly.
std::tr1 is used by googletest. See google/googletest#1111
Address std::tr1::tuple warnings: google/googletest#1111 The unsigned overflow fix has been superseded by: google/googletest#1180 Change-Id: I92dc0ba08a4d0d63f5e5b2da7b64f4a4642ed9ab
gtest uses std::tr1 which has been deprecated in VS 2017 google/googletest#1111 Without _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING define, MSVC generates warnings and, since warnings are treated as errors, compilation fails.
The 1.8.0 release has issues with MSVC 2017. The usage of tr1 produces a warning, and flags are enable so that warnings are enabled. The selected version of GoogleTest is the same one that ITK is using has a fix for the issue. google/googletest#1111
TR1 tuple and our own implementation of tuple has been removed from master |
* Using the latest (and just released) version 15.5.0 of VS2017 introduces the following error into the UnitTests project ... "error C4996: 'std::tr1': warning STL4002: The non-Standard std::tr1 namespace and TR1-only machinery are deprecated and will be REMOVED. You can define _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING to acknowledge that you have received this warning. " * MSDN claims that this is a C++17 language standards issue, but I was not able to solve this problem by specifying the use of the C++14 standard language (the Properties control for this is likewise a new feature of version 15.5.0) See... https://docs.microsoft.com/en-us/cpp/cpp-conformance-improvements-2017 * The only simple, short-term solution that I could come up with was to simply follow the suggestion of defining the _SILENCE_TR1_xxx token as given above. * Even though this problem has been discussed in the GoogleTest github forum since at least 6 June, the underlying problem remains un-resolved at this hour ... See google/googletest#1111 See google/googletest#1320 See google/googletest#1311 * I will assume that Google's resolution of this problem will require WinMerge to adopt the newest GoogleTest framework (which is likely a good idea anyway). I will keep an eye on their progress and resolution and advise accordingly. In the meantime, this kludge allows WinMerge's UnitTests project to compile and execute correctly.
@gennadiycivil Is there any ETA on a release containing this fix? |
Roger , could you please explain what 'fix', not clear
Thanks
…On Sat, Nov 10, 2018, 12:05 Roger Leigh ***@***.*** wrote:
@gennadiycivil <https://github.com/gennadiycivil> Is there any ETA on a
release containing this fix?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#1111 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AMJSMqzP35NTISo4XT__TZeGrg8bQ-Byks5utwdBgaJpZM4NyNdw>
.
|
@gennadiycivil I meant that now the tr1 stuff is dropped from master, is there an ETA for a public release containing these fixes? It's a bit of a blocker for C++17 development. While I'm currently working with custom builds off master, having this in e.g. vcpkg and other common distributions would be highly desirable. |
The next release will be as specified
Post 1.8.x - work to improve/cleanup/pay technical debt. When this work is
completed there will be a 1.9.x tagged release".
We don't have dates just yet.
Thanks
G
…On Mon, Nov 12, 2018 at 8:57 AM Roger Leigh ***@***.***> wrote:
@gennadiycivil <https://github.com/gennadiycivil> I meant that now the
tr1 stuff is dropped from master, is there an ETA for a public release
containing these fixes? It's a bit of a blocker for C++17 development.
While I'm currently working with custom builds off master, having this in
e.g. *vcpkg* and other common distributions would be highly desirable.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#1111 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AMJSMpB6cK3pyWoi2gP5WDr8EJPUfjWaks5uuX5UgaJpZM4NyNdw>
.
|
It appear that using 1.8.1 there is no longer any need for |
Or, if you're using googletest 1.8.3 from NuGet, remember to read the package details: you need to add |
This issue still remains. Can we roll the fix out please? |
@damian123 not clear what 'issue' you are referring to and what exactly ' roll the fix' mean - could you please explain. |
There is a number of assumtions in this question that I think should be addressed:
You may just as well pick a point in the master and use it.
Hope this helps. In additon, this is a reply to "closed" GitHub issue, and there is a very high chance I will never see it because of the filters. It may be better to open a new issue if we need to communicate more. Thanks |
In VS 2017's second toolset update, I'm going to deprecate the
std::tr1
namespace (with the[[deprecated]]
attribute, emitting compiler warnings) in both the C++14 and C++17 modes. This will cause googletest's use ofstd::tr1
to emit warnings (breaking builds under/WX
).While I will provide an escape-hatch macro to silence the deprecation warnings, googletest should migrate away from using
std::tr1
, as it will be removed in the future (eventually completely, with no escape hatches).This is almost identical to #872 and #1036 but not quite. Those issues are observing how I removed
std::tr1
by default in C++17 mode. This issue is about howstd::tr1
will be deprecated even in the default C++14 mode, affecting all users.The text was updated successfully, but these errors were encountered: