Giter VIP home page Giter VIP logo

Comments (5)

j4cbo avatar j4cbo commented on July 20, 2024

Hm, apparently VS2013 is supposed to support declval. But, it looks like I forgot to include in json11.hpp. It could be that declval is accidentally available on gcc/clang because of the other includes, but not in MSVC. Does adding that #include fix it?

json11 only uses snprintf to print numbers, so it should be "safe" to replace all instances of snprintf with sprintf... I'd want to triple-check all the buffer sizes, though.

from json11.

PaulFreund avatar PaulFreund commented on July 20, 2024

I forgot to mention that I already added <type_traits> to check if this is the issue.
Unfortunately not, for reference here is my build output: https://gist.github.com/PaulFreund/11154815

from json11.

PaulFreund avatar PaulFreund commented on July 20, 2024

Just wanted to tell you that I created a copy for me that is header only and compatible with gcc and msvc12 although I currently excluded the two templates that won't compile with msvc12. It's currently very rough and looks like patchwork but it works for now.
Currently I am looking into making the objects mutable so I can spare a few copies.

from json11.

malamanteau avatar malamanteau commented on July 20, 2024

I was able to get it to compile by adding this right above namespace json11

#ifdef _MSC_VER
    #if _MSC_VER <= 1800 // VS 2013
        #define noexcept
        #define snprintf _snprintf_s
    #endif
#endif

_snprintf_s is identical to the Unix snprintf, and since noexcept isn't supported in VS2013, we just erase them.

Intellisense still doesn't like the fail method, but it seems mostly harmless.

from json11.

stevenhoving avatar stevenhoving commented on July 20, 2024

@retrop we can mimic noexcept with throw()
and I don't think snprintf is equal to _snprintf_s

see:

note:
I know that on paper noexcept != throw() but the way it is used in json11 they are more or less equal.

#ifdef _MSC_VER
    #if _MSC_VER <= 1800 // VS 2013
        #define noexcept throw()
        #define snprintf _snprintf
    #endif
#endif

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.