-
Notifications
You must be signed in to change notification settings - Fork 778
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
Ambiguous equality/inequality operators under C++20 #631
Comments
There's a handful of core-issues against C++20 about this, I'm hopeful they will fix this situation in some way. The alternative I think is to add non-const versions of those comparisons to rapidjson (as this is an issue with that library). |
Based on Tencent/rapidjson#1679 Addresses USCiLab#631
Do the above references to this issue suggest that grabbing an updated version of rapidjson would solve this problem? |
Can confirm that the latest version of rapidjson has solved this problem for me. |
Based on Tencent/rapidjson#1679 Addresses #631
Thanks very much for this. Please may I add my voice to a request for a new release so we can get this updated version out via Conan? Thank you. |
I'd like to second the request for a new release with this fix. |
Based on Tencent/rapidjson#1679 Addresses USCiLab#631
Based on Tencent/rapidjson#1679 Addresses USCiLab#631
* Fix json.hpp compilation issue when int32_t is a long (USCiLab#621) When testing whether or not to define a saveValue() overload for long, test the actual set of types implemented. * [cpp20] explicitly capture 'this' as copy (USCiLab#640) implicit 'this' capture is deprecated in C++20 * Fix rapidjson for Clang 10 (USCiLab#645) Based on Tencent/rapidjson#1679 Addresses USCiLab#631 * Fixes to prevent clang-diagnostic errors (USCiLab#643) * Fixes to prevent clang-diagnostic when running clang-tidy with Microsoft Visual Studio cmake projects. * Used boolean rather than bitwise operator. * cleanup cmake files to be a little more moderen (USCiLab#659) * cleanup cmake files to be a little more moderen keep the source tree free of build artifacts cmakelint the cmake files too * fix cmake setup errors on CI fix APPLE clang builds too * CI needs support for realy history cmake V3.6 fix typo in cmake files using add_test() commnds * One step more to use modern cmake Prevent to modifiy compile and linker FLAGS and to set global includes pathes * fix CI build problems with older cmake versions prepare cleanup cmake list file * final cleanup use Config.cmake.in and install hole cmake config files * Fix cpp17 PORTABILITY_TEST linker problem add missed target_link_libraries() * hopefully prevent windows test problems * Store a copy of each serialized shared_ptr within the archive to prevent the shared_ptr to be freed to early. (USCiLab#667) The archives use the memory address pointed by the shared_ptr as a unique id which must not be reused during lifetime of the archive. Therefore, the archives stores a copy of it. This problem was also reported as CVE-2020-11105. * add license files for components of cereal Signed-off-by: Adam Miartus <[email protected]> * Update README.md Fix link to main website * Catch short documents in JSON input When reading unnamed fields from JSON input, the member/value iterators are incremented blind without checking if the end of the iterator has been reached. Record the size so that this can be checked against the current position to ensure reading doesn't walk off the end of the iterator. * C++17: use inline globals for StaticObjects This prevents multiple definition errors in Clang, and also stops dllexporting functions with internal linkage. Degrades gracefully when C++17 is not present. Fix USCiLab#595 Fix USCiLab#652 Fix USCiLab#582 Fix USCiLab#643 * Use std::variant::emplace when loading * Use std::optional::emplace() when loading to construct and load the contained value directly in place * Fix itsNextName not clearing when not found An issue exists when loading vectors of objects where, if the last nvp of the previous object does not exist in the json file, the itsNextName variable within the json serializer is not cleared. This causes the vector serializer to search for that name next (when it should be searching for a nameless object.) The json serializer then throws during the named search. Mild reworking of itsNextName solution * Add github actions workflow use docker containers remove sudo install software-properties-common update before trying install install wget cmake and make install cmake from pip add apt-transport-https Use llvm xenial Fix clang package name Fix boost with gcc<5 verbose compile skip boost for gcc<5 macos test skip boost for macos test different xcode compilers use new cmake syntax for selecting platform no xcode 10 installed Rename tests * Update doctest to 2.4.6 dev + local fixes slated for upstream * Update appveyor to build with MSVC 2022 and fix boost * Fixed loading of std::vector<bool> We should use auto && instead of auto if we want to modify v inside the for loop. * Update license to match BSD template * Update doctest to 2.4.7, update CI, add badges Updates doctest and fixes issues with g++4.7 and MSVC2013 doctest builds. Adds new CI targets for g++ 9 and 10, clang 9 through 12. Adds CI badges for github actions. * Use GNUInstallDirs instead of hard wiring install directories On a multilib setup cmake files should go into lib64. * Update version to 1.3.1 * Make doxygen docs reproducible * Add CMake options for building doc and sandbox relates USCiLab#739 * Correct patch version for 1.3.2 * Fix long long json serialization (USCiLab#728) * Fix long long json serialization * Update pod.hpp * Update .gitignore `.vs/` folder is created by Visual Studio and it is not needed. * `ST` renamed to `AlignedStorage` * Remove extra ; after member function definition Triggered by -Wextra-semi. * add string_view to json archive --------- Signed-off-by: Adam Miartus <[email protected]> Co-authored-by: Bernard Blackham <[email protected]> Co-authored-by: Łukasz Gemborowski <[email protected]> Co-authored-by: groscoe2 <[email protected]> Co-authored-by: John Alexander <[email protected]> Co-authored-by: Claus Klein <[email protected]> Co-authored-by: Michael Walz <[email protected]> Co-authored-by: Adam Miartus <[email protected]> Co-authored-by: Shane Grant <[email protected]> Co-authored-by: John Keeping <[email protected]> Co-authored-by: Shane Peelar <[email protected]> Co-authored-by: logan <[email protected]> Co-authored-by: Gary Heckman <[email protected]> Co-authored-by: Isuru Fernando <[email protected]> Co-authored-by: Darred <[email protected]> Co-authored-by: Anton Blanchard <[email protected]> Co-authored-by: Michael R. Crusoe <[email protected]> Co-authored-by: CHP <[email protected]> Co-authored-by: Luca Ciucci <[email protected]> Co-authored-by: Jan Niklas Hasse <[email protected]>
Running
clang++ -x c++ -std=c++2a -isystem include include/cereal/archives/json.hpp
with a trunk version of Clang in the root of the cereal repo, gives:AFAIU, the reworking of comparisons in C++20 means that the new language must now reject some previously acceptable code for causing ambiguities between comparison operators that the compiler could consider (eg see discussion here https://bugs.llvm.org/show_bug.cgi?id=43765#c4 ).
The text was updated successfully, but these errors were encountered: