GithubHelp home page GithubHelp logo

Comments (8)

pdimov avatar pdimov commented on July 19, 2024 1

In boostorg/mp11@164aa37, I've split mpl.hpp into mpl_list.hpp and mpl_tuple.hpp, so in case of a conflict with Fusion libraries can now include just mpl_list.hpp and leave std::tuple to Fusion.

from fusion.

jonesmz avatar jonesmz commented on July 19, 2024

I'm running into this issue as well.

Any advice from boost::fusion?

from fusion.

djowel avatar djowel commented on July 19, 2024

Not sure how to deal with this, yet. Have anyone asked the mpl11 devs ( pings @pdimov )? Fusion's usage looks legit. Maybe we need to include the right header instead of a forward declaration.

from fusion.

pdimov avatar pdimov commented on July 19, 2024

The forward declarations are correct; the problem is that both libraries try to add MPL support to std::tuple.

The only option I see is for me to split mp11/mpl.hpp into two parts, mpl_list.hpp, which will add MPL support for mp_list, and mpl_tuple.hpp, which will contain the std::tuple support. This will leave to the user the choice of whether to give std::tuple to Fusion or Mp11.

from fusion.

jonesmz avatar jonesmz commented on July 19, 2024

Forgive me for not knowing the internal details of either library, but it is strange to me that boost::fusion is defining something in the boost::mpl namespace at all.

Can boost::fusion be adjusted to use a different way of doing it?

from fusion.

pdimov avatar pdimov commented on July 19, 2024

This is a documented MPL customization mechanism. What Fusion is doing is fine. The problem is that nobody really owns std::tuple, as that's a standard type, not part of any library, Boost or otherwise.

from fusion.

djowel avatar djowel commented on July 19, 2024

The only option I see is for me to split mp11/mpl.hpp into two parts, mpl_list.hpp, which will add MPL support for mp_list, and mpl_tuple.hpp, which will contain the std::tuple support. This will leave to the user the choice of whether to give std::tuple to Fusion or Mp11.

Perhaps fusion can also introduce a PP macro that allows one to inhibit the std::tuple specializations, as a workaround. or, hmmm, maybe just inhibit it all together when mp11 is detected (probably needs to test that tests are still passing as expected, or find ways to make it work with mpl11 right out of the box).

from fusion.

djowel avatar djowel commented on July 19, 2024

In boostorg/mp11@164aa37, I've split mpl.hpp into mpl_list.hpp and mpl_tuple.hpp, so in case of a conflict with Fusion libraries can now include just mpl_list.hpp and leave std::tuple to Fusion.

Wonderful! Thanks @pdimov

from fusion.

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.