You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
IMO it's quite insane to use an ADL-incompatible type with valarray (or any numeric utility that expects overloaded operators). However, LWG-3133 relaxed the requirements for "numeric types" so much that ADL-bombs became acceptable. This PR also arguably implements LWG-3133 (by using std::addressof instead of operator&).
From the old pre-GitHub spreadsheet we used to track LWG issues, it looks like we miscategorized LWG-3133 as a pure wording change requiring no updates to product code. Nice catch.
I pushed a commit to include <utility> in GH_000140_adl_proof_construction and replaced a few casts with fully qualified std::forward and std::move calls for clarity.
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.
Towards #140 and #3100.
IMO it's quite insane to use an ADL-incompatible type with
valarray
(or any numeric utility that expects overloaded operators). However, LWG-3133 relaxed the requirements for "numeric types" so much that ADL-bombs became acceptable. This PR also arguably implements LWG-3133 (by usingstd::addressof
instead ofoperator&
).