Code Monkey home page Code Monkey logo

Comments (3)

ricejasonf avatar ricejasonf commented on June 7, 2024

I'd argue that there is nary a case where dyno::T is not in the parameter list. If there is some weird case then simply ignoring the first param should not be a problem.

If that is true then why not make it always first?

Also this would be cool:

poly["draw"_s](std::cout);

On a sort of related note, I have been using different types of keys with Dyno like hana::type to signal events.

from dyno.

ldionne avatar ldionne commented on June 7, 2024

I'd argue that there is nary a case where dyno::T is not in the parameter list. If there is some weird case then simply ignoring the first param should not be a problem.

If that is true then why not make it always first?

Because a function could want to be dispatched on a different argument than the first one, for example:

int operator+(int, MyType&);

On a sort of related note, I have been using different types of keys with Dyno like hana::type to signal events.

Interesting, I hadn't thought of that but it's certainly cool that this works. I expect this should work with arbitrary Hana compile-time Comparables.

from dyno.

ricejasonf avatar ricejasonf commented on June 7, 2024

Because a function could want to be dispatched on a different argument than the first one, for example:

int operator+(int, MyType&);

Perhaps we are talking about different things. When I look at all of the Dyno examples of concept map implementations as well as every Rust Trait implementation I can find, there is always self at the front of the argument list.

The placeholder AFAICT is there for the storage value AKA self, and the user never calls the function with the signature directly unless they are working with poly directly which is just crazy. 😛

Maybe I am missing something. I'll have to play with it some more.

I'd like to see an example if you have time, but I know there is the conference coming up.

from dyno.

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.