OGRECave/ogre-next

Is there a plan to release a new version of this library

Cheney-W opened this issue · 4 comments

Detailled description

Is there a plan to release a new version of this library? In vcpkg, the tag being used is v2.3.1. However, I noticed that the OgreMain/include/OgreString.h file in this tag is still using a commit from 4 years ago. This causes the build of this version of the repository to fail for the following reasons:

F:\vcpkg\vcpkg-1\buildtrees\ogre-next\src\bda1581442-e7a127e8ed\OgreMain\include\OgreString.h(226): error C2039: 'hash_compare': is not a member of 'stdext'
F:\VS2022\VC\Tools\MSVC\14.36.32532\include\iterator(1455): note: see declaration of 'stdext'
F:\vcpkg\vcpkg-1\buildtrees\ogre-next\src\bda1581442-e7a127e8ed\OgreMain\include\OgreString.h(226): error C2143: syntax error: missing ';' before '<'
F:\vcpkg\vcpkg-1\buildtrees\ogre-next\src\bda1581442-e7a127e8ed\OgreMain\include\OgreString.h(226): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int

I can confirm that I could not compile on Visual Studio 2022 17.8.2 due to this error. From the comments in https://developercommunity.visualstudio.com/t/stdext::hash_compare-has-been-removed-in/10182319, it seems stdext::hash_compare has been removed from <xhash> unless _SILENCE_STDEXT_HASH_DEPRECATION_WARNINGS is defined.

I solved the issue by adding add_compile_definitions(_SILENCE_STDEXT_HASH_DEPRECATION_WARNINGS) to the CMakeLists.txt
I would much prefer if such a workaround was added to the repo for Windows users with a modern VS2022 version

Hi!

I can confirm that I could not compile on Visual Studio 2022 17.8.2 due to this error.

Is this on OgreNext 2.3 or 3.0 (current master branch)?

Because on 3.0 we added /Zc:__cplusplus which (should) makes the __cplusplus macro report something other than 199711L which is what triggers this issue.

Ah, I'm on 2.3.3 (8d4daea). Yes, it would probably be better to use the normal C++11 std::hash directly if possible