Delete copy constructor for ThreadLocalStorage #10420
Merged
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.
Fixes https://cdash.43-1.org/viewBuildError.php?buildid=6898.
Neither
std::shared_mutex
norstd::shared_timed_mutex
are copy-constructible so the implicitly defined defaulted copy constructor (and move constructor) is deleted (https://en.cppreference.com/w/cpp/thread/shared_mutex/shared_mutex). Apparently, we are not using it at all.We see the error only with older versions because non-matching exception specifiers for defaulted functions (which we have here since these types are not no-throw-move-constructible) should result in implicitly deleted functions according to a correction in the standard. Previously, this should give a compile error directly which we are seeing.
If we need a copy constructor, we need to implement it explicitly.