Giter VIP home page Giter VIP logo

Comments (3)

artwyman avatar artwyman commented on June 21, 2024

You're right that this seems to have been an intentional compiler change. I think the relevant commit is actually llvm-mirror/libcxx@e577a4c6 which removes operator< from nullptr_t. Seems like this was changed intentionally in the standard, at the same time as the broader comparison change you referenced. My digging found DR 583 which was resolved along with issue 1512 which was resolved by this wording in the standard. At the end, nullptr_t is being specifically redefined to have fewer built-in operators.

That's a bit inconvenient since it breaks the nice symmetry of the use of nullptr_t in JsonValue, but it doesn't affect anything public so it shouldn't be impossible to hack around. I haven't thought about it in detail, but you could likely do it by defining NullValue without using the Value template. Or you might make Value work by replacing nullptr_t with a helper struct which is comparable and castable to nullptr_t. Or there might be a more clever option. @j4cbo any thoughts?

@cpu82 do you want to take a stab at this an send a PR, or are you looking for someone else to do it?

from json11.

j4cbo avatar j4cbo commented on June 21, 2024

I like the helper struct idea. It doesn't need to be castable to nullptr_t, just comparable with itself.

from json11.

cpu82 avatar cpu82 commented on June 21, 2024

It builds fine after replace nullptr_t with the new empty struct.

@j4cbo thanks for the patch.

from json11.

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.