forked from bemanproject/optional
-
Notifications
You must be signed in to change notification settings - Fork 0
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
P2988 r8 #19
Merged
Merged
P2988 r8 #19
Conversation
This file contains 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
Header is in sync with synopsis.
Make class declaration the synopsis version.
Move the assignment operators out of class synopsis declaration.
Define swap out of body
Definitions of begin and end moved out of line.
Move definitions out of the class declaration.
and_then etc out of line
Move reset out of the body.
Move the free functions out of the namespace. Make sure no declarations are unintended from a slightly different definition.
optional_map_impl and monostate are dead.
Standardese lives in std and avoids naming the namespace, except for move and forward.
No extra definitions snuck in, all back now inside the namespace so are not noise.
Make change tracking back to std a little easier.
Apply all the changes to optional to the wording section of P2988.
Replace by expos or implementation defined.
optional<T&&>
The type of the u parameter must be convertible to a T, and T must be copy constructible.
A few additional std:: names. Also remove the anon namespace. Doesn't protect much as the std:: names are still available if someone uses namespace optional26.
Add two new tests: one for `optional<optional<int>&>`, and one testing that we can construct and assign to `optional<T&>` from `reference_wrapper<T>` (which should work: since `reference_wrapper<T>` is implicitly convertible to `T&`, it also should be implicitly convertible to `optional<T&>`). These tests are both red before this patch and green afterward.
The new tests are red before the patch and green afterward.
The return type of `emplace` had been wrong; `emplace` returns a reference to the emplaced value (in this case, the T& reference that was bound), not `*this`. The new tests are red before the patch and green afterward.
Merge main
All tests pass under ASAN. Maintained constructor triviality, prevent construction of dangling pointers/references, constrain emplace, copy and move are identical; no additional overloads for move construction or assignment.
Re clang format, defs out of line where possible, unused definitions removed.
Use exposid for exposition only `val` in optional.
exposid for val, remove postconditions that are redundant with effects, state constraints as false rather than negating the code with !, fix some linebreaks.
Typo in constructor fail test cpp file name
Correct file name
An initializer list of references should not construct an optional. Not that a list of references makes sense, either.
Add notes on wording principles and update wording after review.
Fix missing tex escapes in code blocks
Removed a stray detail:: that refereces a polyfill std:: trait.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
No description provided.