Coder Social home page Coder Social logo

Comments (3)

hcedwar avatar hcedwar commented on June 28, 2024

Yeah - I tightened up this clause and a lot of the subspan wording in PR #55

from cpp-proposals-pub.

crtrott avatar crtrott commented on June 28, 2024

Though the main thing is that you added arbitrary layout conversions. Previously we had this as a subspan always being layout_stride and the function only being defined for basic_mdspan with one of the standard layouts. That reduced the amount of definition we needed to do. In fact other than the requirement of preserving static extents as static in order to not have a QOI dependent ABI, the subspan definition was complete for that case. We consciously sidestepped the generic layout convertibility previously to keep the proposal simple. Note that we neither define conversions of layouts into each other.

This btw. brings another awkward problem with it: through subspan you basically now require that arbitrary layout (i.e. custom layout) conversions are possible, since there is no require clause which limits what layout to which layout works. That means the post conditions are not actually fulfillable, while still being able to meet the requirements. This we can fix relatively straight forward by again requiring that the source layout is one of the standard layouts.

Our thinking was to later extend this with defining some mapping_conversion<MappingA,MappingB> class, which would introduce those capabilities, but leaving it for later.

from cpp-proposals-pub.

crtrott avatar crtrott commented on June 28, 2024

This is resolved: we are requiring static_extent preservation when using the all_type as a slice specifier for a static_extent.

from cpp-proposals-pub.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.