-
Notifications
You must be signed in to change notification settings - Fork 758
std::allocator
functions and typedefs deprecated in C++17
#1214
Comments
Fixes NVIDIA#1214 Bug 200619424
Fixes NVIDIA#1214 Bug 200619424
Fixes NVIDIA#1214 Bug 200619424
std::allocator::construct
is deprecated in C++17std::allocator
functions and typedefs deprecated in C++17
Reopening -- the typedefs on |
The root cause of the MSVC/C++17 std::allocator bugs is that CMake will apparently ignore any requested CUDA_STANDARD that it doesn't know how to handle. I've filed a bug about it here: https://gitlab.kitware.com/cmake/cmake/-/issues/20953. We'll need to bump the CMake version to 3.18 (which is still in RC...) to get support for any C++17 targets. Fortunately CMake is easy to install on most platforms and the release cycles are short, so we should see a full 3.18 soon. If anyone has issue upgrading in the meantime, let me know. CMake downloads: https://cmake.org/download/ |
Note that CMake won't support C++17 CUDA targets via the CUDA_STANDARD property until CMake 3.18. Until this, C++17 must be enabled explicitly by setting `--std=c++17` in CMAKE_CUDA_FLAGS. Once CMake 3.18 is released this can be fixed. - Address C++17 deprecated APIs in the allocator layers. Fixes NVIDIA#1214 Bug 200619424 Bug 3043659
These affect files that aren't in the 1.9.10-1 branch. - Enable /W3 on Windows to catch deprecation warnings. - Enabled the `CUDA_STANDARD_REQUIRED` property. - Replace std::result_of with std::invoke_result. Fixes NVIDIA#1214 Bug 200619424
Note that CMake won't support C++17 CUDA targets via the CUDA_STANDARD property until CMake 3.18. Until this, C++17 must be enabled explicitly by setting `--std=c++17` in CMAKE_CUDA_FLAGS. Once CMake 3.18 is released this can be fixed. - Address C++17 deprecated APIs in the allocator layers. Fixes NVIDIA#1214 Bug 200619424 Bug 3043659
Note that CMake won't support C++17 CUDA targets via the CUDA_STANDARD property until CMake 3.18. Until this, C++17 must be enabled explicitly by setting `--std=c++17` in CMAKE_CUDA_FLAGS. Once CMake 3.18 is released this can be fixed. - Address C++17 deprecated APIs in the allocator layers. Fixes #1214 Bug 200619424 Bug 3043659
Note that CMake won't support C++17 CUDA targets via the CUDA_STANDARD property until CMake 3.18. Until this, C++17 must be enabled explicitly by setting `--std=c++17` in CMAKE_CUDA_FLAGS. Once CMake 3.18 is released this can be fixed. - Address C++17 deprecated APIs in the allocator layers. Fixes #1214 Bug 200619424 Bug 3043659
Note that CMake won't support C++17 CUDA targets via the CUDA_STANDARD property until CMake 3.18. Until this, C++17 must be enabled explicitly by setting `--std=c++17` in CMAKE_CUDA_FLAGS. Once CMake 3.18 is released this can be fixed. - Address C++17 deprecated APIs in the allocator layers. Fixes #1214 Bug 200619424 Bug 3043659
These affect files that aren't in the 1.9.10-1 branch. - Enable /W3 on Windows to catch deprecation warnings. - Enabled the `CUDA_STANDARD_REQUIRED` property. - Replace std::result_of with std::invoke_result. Fixes #1214 Bug 200619424
The problem seems to appear on fresh VS install (16.10.2):
Using the following modification leads to successful compilation:
But I can't verify the fix for older standards due to the following issue. |
NVBug 200723050 is related. |
With MSVC 2017:
NVBug 200619442
The text was updated successfully, but these errors were encountered: