ORNL / ORNL/cpp-proposals-pub

LWG 22-04-29

Open
#225 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
HTML
Stars
29
Forks
26
PR merge metrics
No merged PRs in 30d

Description

  • Make proper concept [10a64f3c8e490199b3]
    • { M::is_always_strided() } -> same_as<bool>;
    • reorder do this before bool_constant
template<class T> constexpr bool is-extents = false;
template<class... T> constexpr bool is-extents<extents<T...>> = true;
Accessor
  • a denotes a value of type A or const A [eb9bf80b6473]

  • "The type A::pointer need not be dereferenceable." [eb9bf80b6473]

  • p denotes a value of type A::pointer or const A::pointer [eb9bf80b6473]

  • i, j, and j denotes values of type size_t [eb9bf80b6473]

  • 5: drop swappable its in semiregular [02ddc845e8e]

    • do this for all other things
  • Result: A type that models common_reference_with<A::reference&&, A::element_type&> [37ae082646]

  • 11: its preconditions if any are met implicit in [233a72100553]

    • put Note first, since its unrelated accessible range,
    • drop "one could imagine" , [cd990d85246d6]
    • can impose instead of will generally, use i%size() [37ae082646]

Add Remarks: the expression is equality preserving. (both for a.access and a.offset) [37ae082646]

Front matter: [233a72100553]

An accessor policy defines types 
and operations by which a reference
to a single object is created from an abstract data handle to a number of such objects and an index.
For an accessor policy, a set of indicies `i` for  a given handle `p` for which access produces
valid reference to object, is defined as accesible range `[a, p)`.
  • update accessible range wording [0,n) is an accessible range of p and a [233a72100553] [ecd50117d661df] [1ca5940c79209f]

q and b instead of p_sub and a_sub [233a721005]

default_accesor
  • remove typename from offset_policy::pointer -> make it just pointer [fce6baeb0bd1cb]
  • 1: requirements of accessor policy -> accessor policy requirements [fce6baeb0bd1cb]
  • 4: for an instance of -> of an object of type default_accessor [b0673085842d0]
  • 4: size_type -> size_t [b0673085842d0]

Constructor
1.1 OtherElementType()[], element_type()[] [fce6baeb0bd1cb]
2 Effects equivalent to return p+i; [fce6baeb0bd1cb]

3 Effects equivalent to return p[i] [fce6baeb0bd1cb]

move offset after access in synopsis and definitions [fce6baeb0bd1cb]

  • submdspan

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the listed C++ wording changes and referenced commits for concepts, Accessor, default_accessor, and submdspan. Done means the affected proposal wording incorporates the requested requirements, terminology, front matter, remarks, and synopsis changes.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
compilers
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.