rmqcpp is using deprecated VC++17 features

Open
#53 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
35/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Stale
Tech stack
cpp
Domain
networking

Research direction

Reproduce the build in Visual Studio with a vcpkg manifest, C++17, and the HelloWorld producer example. Start with the diagnostics reported in bsl_memory.h and bsl_functional.h, then verify that the project builds without deprecation-warning suppression.

Written by the indexing model from the issue text.

Description

Describe the bug
Building a project that references rmqcpp gives errors related to deprecated features. I have to suppress the warnings to make it build successfully.

Error C4996 'std::raw_storage_iterator': warning STL4011: std::raw_storage_iterator is deprecated in C++17. Consider using the std::uninitialized_copy() family of algorithms instead. You can define _SILENCE_CXX17_RAW_STORAGE_ITERATOR_DEPRECATION_WARNING or _SILENCE_ALL_CXX17_DEPRECATION_WARNINGS to suppress this warning. rabbitMQStream_rmqcpp D:\source\repos\rabbitMQ_cppExample\rabbitMQStream_rmqcpp\vcpkg_installed\x64-windows\x64-windows\include\bsl_memory.h 106

Error C4996 'std::binary_negate': warning STL4008: std::not1(), std::not2(), std::unary_negate, and std::binary_negate are deprecated in C++17. They are superseded by std::not_fn(). You can define _SILENCE_CXX17_NEGATORS_DEPRECATION_WARNING or _SILENCE_ALL_CXX17_DEPRECATION_WARNINGS to suppress this warning. rabbitMQStream_rmqcpp D:\source\repos\rabbitMQ_cppExample\rabbitMQStream_rmqcpp\vcpkg_installed\x64-windows\x64-windows\include\bsl_functional.h 68

To Reproduce
Steps to reproduce the behavior:

  1. In Visual Studio, Create a new console application (MSBuild)
  2. Add vcpkg.json file to the project. Past the following: { "dependencies": ["rmqcpp"]}
  3. enable vcpkg manifest mode: right-click on project in solution explorer, in Configuration Properties > vcpkg set "Use Vcpkg Manifest" to Yes.
  4. Copy code from rmqcpp examples HelloWorld>producer.m.cpp to and replace the main function in the project.
  5. Set C++ Language Standard : Configuration Properties > General> C++ Language Standard: ISO C++ 17 Standard
  6. Compile Project.

Expected behavior
Error C4996 'std::raw_storage_iterator': warning STL4011: std::raw_storage_iterator is deprecated in C++17
Error C4996 'std::binary_negate': warning STL4008: std::not1(), std::not2(), std::unary_negate, and std::binary_negate are deprecated in C++17. They are superseded by std::not_fn().

Screenshots
image

Environment (please complete the following information):

  • Operating System and Version: Windows 11
Dominant language
C++
Stars
106
Forks
32
Avg merge
9h 6m
Merged PRs (30d)
4

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from bloomberg/rmqcpp

All issues in bloomberg/rmqcpp

Similar issues

More C++ issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.