billyquith / ponder

C++ reflection library with Lua binding, and JSON and XML serialisation.
http://billyquith.github.io/ponder/
Other
633 stars 92 forks source link

Ponder compile failed with a future version of MSVC #120

Closed Cheney-W closed 4 years ago

Cheney-W commented 4 years ago

Hello, I'm a member of Microsoft VCPKG, when I built this port in an internal version of Visual Studio, it failed with following errors: include\xstring(430): error C2027: use of undefined type 'std::basic_ostream<char,std::char_traits>' include\xstring(430): error C2065: 'iostate': undeclared identifier

This issue due to a change in MSVC: \ doesn't transitively include\. For fixing this issue, we need to add #include\ into the source.

Because there are multiple .cpp files that fail to compile due to this problem, in order to reduce the amount of modification, I hope to add modifications to a common header file, such as config.hpp.

Could you please help me confirm if it is appropriate to modify in config.hpp?

billyquith commented 4 years ago

Hi there, thanks for the feedback. Sure, put in there with a comment and I can refactor later if needs be.

I hope to get back to this project at some point but life stuff... you know.

Cheney-W commented 4 years ago

@billyquith I have submitted a PR: https://github.com/billyquith/ponder/pull/121 for fixing this issue, could you please help review and merge it?

billyquith commented 3 years ago

Just trying out vcpkg. I'm moving back from OSX to Windows 10 as a primary dev environment at the moment. MSVC has come on a long way since 2015ish and C++ support much better. Great work at MS.

Is there anything I can do to support vcpkg? Should I include some config files? I noticed your version number is out (3.0.0).

Cheney-W commented 3 years ago

@billyquith Thank you very much for your willingness to support VCPKG! About the version number is out, because we are only using the latest release of source on GitHub. But the last release(3.0.0) was in 4 Oct 2018, so do you have plan to generate a new release on GitHub?

billyquith commented 3 years ago

Thank you very much for your willingness to support VCPKG!

I kind of haven't done it before because I've never felt like Windows had a substantial, reliable one. You just end up maintaining a release system for a tiny number of users in each ecosystem. conan and vcpkg seem like the two major contenders. I don't have experience of either. I've mostly been using Homebrew on MacOS and was happy with that.

About the version number is out, because we are only using the latest release of source on GitHub. But the last release(3.0.0) was in 4 Oct 2018, so do you have plan to generate a new release on GitHub?

Wow, I didn't realise it had been in there since 2018! I would like to make a release fairly soon. This is a home project and work is sporadic according to other priorities. One of the reasons I haven't widely publicised this lack of support time. I also felt it wasn't quite mature enough. It would be nice to get it used though after the effort I've put in, and the guys from CAMP as well. I see this as a learning project mainly though: C++, reflection, etc.

I've bump the major version a couple of times because the API or internals changed substantially. I'm currently adding features and bug fixing so was planning on a 3.2 release. Possibly in the next couple of weeks.

Should I move the vcpkg files locally? Can they read a version number from a cmake config? Is there a good example I could follow?

Cheney-W commented 3 years ago

Thanks for your reply! You don't need to move the vcpkg files locally. Generally speaking, vcpkg obtains the latest version of port manually. We will regularly check the release version of each port. If a new version is released, we will manually submit a PR to update the port file of vcpkg, so as to achieve the purpose of updating the port version. Here is an example of updating the port version: https://github.com/microsoft/vcpkg/pull/14605