User:T. Canens/ranges notes


 * Qualification style: and.
 * Exception: for something in std, spell out the full
 * Decide on where/how to decompose complex concepts ( being an example):
 * Template transcluded on each algorithm page using it?
 * Note on the concept's page?
 * Goal: A user shouldn't have to click on more than a couple of links to figure out what has to satisfy in order to use  on a.
 * Cover [concepts.lib.general.equality] somewhere.
 * Key points: equality preservation; which inputs may be modified; implicit expression variants
 * Decide how to cover them.
 * Template and transclude on every concept page that is relevant?
 * Dedicated section + links?
 * Algorithms.
 * May need a template for the "return the past-the-end iterator of the range" thing.
 * Document various caveats in remarks? (But note https://github.com/ericniebler/stl2/issues/261)


 * No intended difference between and use  vs. " be an expression such that  is " and use . But need to watch out for possible missing "equality-preserving". See issues #531 and #532

implicit expression variations
, treating the whole as the "operand" (not just the id-expression, contrary to previous note)
 * Casey: "implicit expression variations" applies to all id-expressions that are const lvalues (after substitution)
 * Non-id-expressions not included
 * Remember to check while writing if it's sane
 * Casey: intended that spawn variations for the expression in
 * Casey: This is needed for.
 * Casey: standalone requires all implicit variations on the assignment expression to be non-modifying for the right operand (including when it's a non-const rvalue), but  removes that requirement because it also requires  which requires, which counts as an explicit requirement that supersedes the implicit requirement.
 * i.e., the same concept-id can mean different things depending on whether it is used stand-alone or as part of another concept. Explicit/implicit superseding can happen "at a distance" and isn't local to a concept.