Skip to content

Conversation

@mhoemmen
Copy link
Contributor

@mhoemmen mhoemmen commented Nov 1, 2024

No description provided.

mhoemmen added 24 commits July 10, 2024 14:18
Update based on further discussion with David Sankel.

* Rename `is_checkably_valid` to `detectably_invalid`
    (with inverted return value)

* Ask LEWG to consider the alternative design that makes
    `is_sufficiently_aligned` a nonmember function in `<bit>`
    instead of a member function of `aligned_accessor`,
    while LWG review of R2 proceeds concurrently

* P2389R2 was voted into the Working Draft at St. Louis,
    so replace use of `dextents` in examples with `dims`.

* Minor formatting and non-wording fixes
Add non-wording section explaining why `aligned_accessor`
has no `explicit` constructor from less to more alignment.
* Make is_sufficiently_aligned a nonmember function
  (in the wording)

* Fix nonwording sections accordingly

* Minor correction in Example in Wording

* Update implementation Compiler Explorer link
  and source code (Appendix B)
* Improve Godbolt implementation

I'm submitting P2897R4.html as P2897R4 (aligned_accessor).
* Move `is_sufficiently_aligned` from `<bit>` to `<memory>`,
  due to feedback from LEWG mailing list review of R4

* Give `is_sufficiently_aligned` a "*Throws*: Nothing" clause
  and add nonwording text explaining why
* Change all template parameter names to be PascalCase,
  per Library convention
* Swap order of template parameters of `is_sufficiently_aligned`.

* Update Compiler Explorer
  <a href="https://godbolt.org/z/xj4Yzdnvf">implementation link</a>.
* Use `assume_aligned` in `offset` as well as in `access`
* Change `gcd` requirement in `aligned_accessor` converting constructor
  back from Mandate to Constraint.  Add explanation with example in
  nonwording Section 5.9.

* Update Compiler Explorer <a
  href="https://godbolt.org/z/x1erq98cK">implementation link</a>.
* Remove `access` Precondition, since it is implied by the Effects
  being equivalent to using `assume_aligned`.
Add alignment precondition to `aligned_accessor` class, and add
nonwording section "Standard accessors already impose preconditions
that propagate to `mdspan` construction" that explains the
"class-wide" preconditions on data handles given to `default_accessor`
and `aligned_accessor`.
* Make conversion operator to `default_accessor` `noexcept`

* Change `offset` precondition to use class' definition
  of "accessible range"

* Add back precondition to `access`, so it matches `offset`'s
  precondition
Implement changes from LWG's 2024-11-01 review.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant