Details
-
Bug
-
Resolution: Fixed
-
P1: Critical
-
5.14.0
Description
I'm trying to build Qt 5.14.0 in c++11 mode.
In Qt3D std::cbegin() and std::cend() are used, which are, AFAIK C++14.
I get the following compiler errors:
qt-everywhere-src-5.14.0/qt3d/src/render/materialsystem/shaderbuilder.cpp: In member function ‘virtual void Qt3DRender::Render::ShaderBuilder::syncFromFrontEnd(const Qt3DCore::QNode*, bool)’:
qt-everywhere-src-5.14.0/qt3d/src/render/materialsystem/shaderbuilder.cpp:290:25: error: ‘cbegin’ is not a member of ‘std’
{{ for (auto it = std::cbegin(shaderTypesToGetters), end = std::cend(shaderTypesToGetters); it != end; ++it) {}}
{{ ^~~~~~}}
qt-everywhere-src-5.14.0/qt3d/src/render/materialsystem/shaderbuilder.cpp:290:25: note: suggested alternative: ‘begin’
{{ for (auto it = std::cbegin(shaderTypesToGetters), end = std::cend(shaderTypesToGetters); it != end; ++it) {}}
{{ ^~~~~~}}
{{ begin}}
qt-everywhere-src-5.14.0/qt3d/src/render/materialsystem/shaderbuilder.cpp:290:100: error: ‘end’ was not declared in this scope
{{ for (auto it = std::cbegin(shaderTypesToGetters), end = std::cend(shaderTypesToGetters); it != end; ++it) {}}{{}}
qt-everywhere-src-5.14.0/qt3d/src/render/renderers/opengl/renderer/renderviewbuilder.cpp: In member function ‘void Qt3DRender::Render::{anonymous}::SyncRenderViewPreCommandUpdate::operator()()’:
qt-everywhere-src-5.14.0/qt3d/src/render/renderers/opengl/renderer/renderviewbuilder.cpp:323:29: error: ‘cbegin’ is not a member of ‘std’
{{ auto eIt = std::cbegin(renderableEntities);}}
{{ ^~~~~~}}
qt-everywhere-src-5.14.0/qt3d/src/render/renderers/opengl/renderer/renderviewbuilder.cpp:323:29: note: suggested alternative: ‘begin’
{{ auto eIt = std::cbegin(renderableEntities);}}
{{ ^~~~~~}}
{{ begin}}
qt-everywhere-src-5.14.0/qt3d/src/render/renderers/opengl/renderer/renderviewbuilder.cpp:324:36: error: ‘cend’ is not a member of ‘std’
{{ const auto eEnd = std::cend(renderableEntities);}}
{{ ^~~~}}
qt-everywhere-src-5.14.0/qt3d/src/render/renderers/opengl/renderer/renderviewbuilder.cpp:324:36: note: suggested alternative: ‘end’
{{ const auto eEnd = std::cend(renderableEntities);}}
Replacing cend() and cbegin() with begin() and end() makes it compile.