fix: thread_count failed to construct before g++11 #199
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
PR 198 fails to build with g++ 9 since
std::atomic<unsigned int> thread_count = 0;
would call deleted copy constructor
atomic& operator=(const atomic&) = delete;
instead of
constexpr atomic(__integral_type __i) noexcept : __base_type(__i) { }
before g++ 11 and clang 16.This new construction method is to use
std::atomic<unsigned int> thread_count(0u);
, which will successfully compile in my tests with g++ 4.8.5, 9, 10, 11, and 12.