Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

OS does not compile with recent GCC: std::move calls throw warnings #5262

Closed
ainar opened this issue Sep 26, 2024 · 1 comment
Closed

OS does not compile with recent GCC: std::move calls throw warnings #5262

ainar opened this issue Sep 26, 2024 · 1 comment
Assignees

Comments

@ainar
Copy link

ainar commented Sep 26, 2024

Issue overview

OpenStudio 3.8.0 does not compile with the most recent versions of GCC because of warnings related to std::move calls.

Current Behavior

OpenStudio does not compile with the most recent versions of GCC.

Expected Behavior

OpenStudio should compile.

Steps to Reproduce

  1. Follow the instructions there https://github.com/NREL/OpenStudio/blob/ba1b94b6542c1f1d4cdcdb775886852b9a82bc4f/BUILDING.md
  2. On the last command, the compilation fails because of warnings, and all warnings are treated as errors. The 114 warnings are all:
warning: moving a temporary object prevents copy elision [-Wpessimizing-move]

followed by

note: remove ‘std::move’ call
Extract of the warnings (obtained by compiling without -Werror)
In file included from /home/aina/dev/OpenStudio/src/model/../utilities/idf/WorkspaceExtensibleGroup.hpp:11,
                 from /home/aina/dev/OpenStudio/src/model/ModelObjectList_Impl.hpp:11,
                 from /home/aina/dev/OpenStudio/src/model/ModelObjectList.cpp:7:
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp: In instantiation of ‘T openstudio::IdfExtensibleGroup::cast() const [with T = openstudio::WorkspaceExtensibleGroup]’:
/home/aina/dev/OpenStudio/src/model/ModelObjectList.cpp:84:83:   required from here
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp:162:12: warning: moving a temporary object prevents copy elision [-Wpessimizing-move]
  162 |     return T(std::move(this->getImpl<typename T::ImplType>()), m_index);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp:162:12: note: remove ‘std::move’ call
[589/9330] Building CXX object src/model/CMakeFiles/openstudio_model.dir/AdditionalProperties.cpp.o
In file included from /home/aina/dev/OpenStudio/src/model/../utilities/idf/WorkspaceExtensibleGroup.hpp:11,
                 from /home/aina/dev/OpenStudio/src/model/ModelExtensibleGroup.hpp:10,
                 from /home/aina/dev/OpenStudio/src/model/ClimateZones.hpp:11,
                 from /home/aina/dev/OpenStudio/src/model/Model_Impl.hpp:54,
                 from /home/aina/dev/OpenStudio/src/model/AdditionalProperties.cpp:13:
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp: In instantiation of ‘T openstudio::IdfExtensibleGroup::cast() const [with T = openstudio::model::ModelExtensibleGroup]’:
/home/aina/dev/OpenStudio/src/model/AdditionalProperties.cpp:217:77:   required from here
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp:162:12: warning: moving a temporary object prevents copy elision [-Wpessimizing-move]
  162 |     return T(std::move(this->getImpl<typename T::ImplType>()), m_index);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp:162:12: note: remove ‘std::move’ call
[628/9330] Building CXX object src/model/CMakeFiles/openstudio_model.dir/AirflowNetworkDuctViewFactors.cpp.o
In file included from /home/aina/dev/OpenStudio/src/model/../utilities/idf/WorkspaceExtensibleGroup.hpp:11,
                 from /home/aina/dev/OpenStudio/src/model/ModelExtensibleGroup.hpp:10,
                 from /home/aina/dev/OpenStudio/src/model/AirflowNetworkDuctViewFactors.cpp:9:
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp: In instantiation of ‘T openstudio::IdfExtensibleGroup::cast() const [with T = openstudio::model::ModelExtensibleGroup]’:
/home/aina/dev/OpenStudio/src/model/AirflowNetworkDuctViewFactors.cpp:185:83:   required from here
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp:162:12: warning: moving a temporary object prevents copy elision [-Wpessimizing-move]
  162 |     return T(std::move(this->getImpl<typename T::ImplType>()), m_index);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp:162:12: note: remove ‘std::move’ call
[656/9330] Building CXX object src/model/CMakeFiles/openstudio_model.dir/AirLoopHVACDedicatedOutdoorAirSystem.cpp.o
In file included from /home/aina/dev/OpenStudio/src/model/../utilities/idf/WorkspaceExtensibleGroup.hpp:11,
                 from /home/aina/dev/OpenStudio/src/model/ModelExtensibleGroup.hpp:10,
                 from /home/aina/dev/OpenStudio/src/model/ClimateZones.hpp:11,
                 from /home/aina/dev/OpenStudio/src/model/Model_Impl.hpp:54,
                 from /home/aina/dev/OpenStudio/src/model/AirLoopHVACDedicatedOutdoorAirSystem.cpp:15:
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp: In instantiation of ‘T openstudio::IdfExtensibleGroup::cast() const [with T = openstudio::WorkspaceExtensibleGroup]’:
/home/aina/dev/OpenStudio/src/model/AirLoopHVACDedicatedOutdoorAirSystem.cpp:135:59:   required from here
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp:162:12: warning: moving a temporary object prevents copy elision [-Wpessimizing-move]
  162 |     return T(std::move(this->getImpl<typename T::ImplType>()), m_index);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp:162:12: note: remove ‘std::move’ call
[678/9330] Building CXX object src/model/CMakeFiles/openstudio_model.dir/AvailabilityManagerAssignmentList.cpp.o
In file included from /home/aina/dev/OpenStudio/src/model/AvailabilityManagerAssignmentList.cpp:30:
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp: In instantiation of ‘T openstudio::IdfExtensibleGroup::cast() const [with T = openstudio::WorkspaceExtensibleGroup]’:
/home/aina/dev/OpenStudio/src/model/AvailabilityManagerAssignmentList.cpp:97:47:   required from here
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp:162:12: warning: moving a temporary object prevents copy elision [-Wpessimizing-move]
  162 |     return T(std::move(this->getImpl<typename T::ImplType>()), m_index);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp:162:12: note: remove ‘std::move’ call
[704/9330] Building CXX object src/model/CMakeFiles/openstudio_model.dir/ClimateZones.cpp.o
In file included from /home/aina/dev/OpenStudio/src/model/../utilities/idf/WorkspaceExtensibleGroup.hpp:11,
                 from /home/aina/dev/OpenStudio/src/model/ModelExtensibleGroup.hpp:10,
                 from /home/aina/dev/OpenStudio/src/model/ClimateZones.hpp:11,
                 from /home/aina/dev/OpenStudio/src/model/ClimateZones.cpp:6:
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp: In instantiation of ‘T openstudio::IdfExtensibleGroup::cast() const [with T = openstudio::model::ClimateZone]’:
/home/aina/dev/OpenStudio/src/model/ClimateZones.cpp:45:46:   required from here
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp:162:12: warning: moving a temporary object prevents copy elision [-Wpessimizing-move]
  162 |     return T(std::move(this->getImpl<typename T::ImplType>()), m_index);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp:162:12: note: remove ‘std::move’ call
[710/9330] Building CXX object src/model/CMakeFiles/openstudio_model.dir/CoilCoolingDXCurveFitOperatingMode.cpp.o
In file included from /home/aina/dev/OpenStudio/src/model/../utilities/idf/WorkspaceExtensibleGroup.hpp:11,
                 from /home/aina/dev/OpenStudio/src/model/ModelExtensibleGroup.hpp:10,
                 from /home/aina/dev/OpenStudio/src/model/ClimateZones.hpp:11,
                 from /home/aina/dev/OpenStudio/src/model/Model_Impl.hpp:54,
                 from /home/aina/dev/OpenStudio/src/model/CoilCoolingDXCurveFitOperatingMode.cpp:10:
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp: In instantiation of ‘T openstudio::IdfExtensibleGroup::cast() const [with T = openstudio::WorkspaceExtensibleGroup]’:
/home/aina/dev/OpenStudio/src/model/CoilCoolingDXCurveFitOperatingMode.cpp:196:59:   required from here
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp:162:12: warning: moving a temporary object prevents copy elision [-Wpessimizing-move]
  162 |     return T(std::move(this->getImpl<typename T::ImplType>()), m_index);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp:162:12: note: remove ‘std::move’ call
[713/9330] Building CXX object src/model/CMakeFiles/openstudio_model.dir/CoilCoolingDXMultiSpeed.cpp.o
In file included from /home/aina/dev/OpenStudio/src/model/../utilities/idf/WorkspaceExtensibleGroup.hpp:11,
                 from /home/aina/dev/OpenStudio/src/model/ModelExtensibleGroup.hpp:10,
                 from /home/aina/dev/OpenStudio/src/model/ClimateZones.hpp:11,
                 from /home/aina/dev/OpenStudio/src/model/Model_Impl.hpp:54,
                 from /home/aina/dev/OpenStudio/src/model/CoilCoolingDXMultiSpeed.cpp:7:
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp: In instantiation of ‘T openstudio::IdfExtensibleGroup::cast() const [with T = openstudio::WorkspaceExtensibleGroup]’:
/home/aina/dev/OpenStudio/src/model/CoilCoolingDXMultiSpeed.cpp:309:63:   required from here
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp:162:12: warning: moving a temporary object prevents copy elision [-Wpessimizing-move]
  162 |     return T(std::move(this->getImpl<typename T::ImplType>()), m_index);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp:162:12: note: remove ‘std::move’ call
[732/9330] Building CXX object src/model/CMakeFiles/openstudio_model.dir/CoilHeatingDXMultiSpeed.cpp.o
In file included from /home/aina/dev/OpenStudio/src/model/../utilities/idf/WorkspaceExtensibleGroup.hpp:11,
                 from /home/aina/dev/OpenStudio/src/model/ModelExtensibleGroup.hpp:10,
                 from /home/aina/dev/OpenStudio/src/model/ClimateZones.hpp:11,
                 from /home/aina/dev/OpenStudio/src/model/Model_Impl.hpp:54,
                 from /home/aina/dev/OpenStudio/src/model/CoilHeatingDXMultiSpeed.cpp:7:
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp: In instantiation of ‘T openstudio::IdfExtensibleGroup::cast() const [with T = openstudio::WorkspaceExtensibleGroup]’:
/home/aina/dev/OpenStudio/src/model/CoilHeatingDXMultiSpeed.cpp:350:63:   required from here
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp:162:12: warning: moving a temporary object prevents copy elision [-Wpessimizing-move]
  162 |     return T(std::move(this->getImpl<typename T::ImplType>()), m_index);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp:162:12: note: remove ‘std::move’ call
[737/9330] Building CXX object src/model/CMakeFiles/openstudio_model.dir/CoilHeatingElectricMultiStage.cpp.o
In file included from /home/aina/dev/OpenStudio/src/model/../utilities/idf/WorkspaceExtensibleGroup.hpp:11,
                 from /home/aina/dev/OpenStudio/src/model/ModelExtensibleGroup.hpp:10,
                 from /home/aina/dev/OpenStudio/src/model/ClimateZones.hpp:11,
                 from /home/aina/dev/OpenStudio/src/model/Model_Impl.hpp:54,
                 from /home/aina/dev/OpenStudio/src/model/CoilHeatingElectricMultiStage.cpp:7:
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp: In instantiation of ‘T openstudio::IdfExtensibleGroup::cast() const [with T = openstudio::WorkspaceExtensibleGroup]’:
/home/aina/dev/OpenStudio/src/model/CoilHeatingElectricMultiStage.cpp:161:63:   required from here
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp:162:12: warning: moving a temporary object prevents copy elision [-Wpessimizing-move]
  162 |     return T(std::move(this->getImpl<typename T::ImplType>()), m_index);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp:162:12: note: remove ‘std::move’ call
[743/9330] Building CXX object src/model/CMakeFiles/openstudio_model.dir/CoilHeatingGasMultiStage.cpp.o
In file included from /home/aina/dev/OpenStudio/src/model/../utilities/idf/WorkspaceExtensibleGroup.hpp:11,
                 from /home/aina/dev/OpenStudio/src/model/ModelExtensibleGroup.hpp:10,
                 from /home/aina/dev/OpenStudio/src/model/ClimateZones.hpp:11,
                 from /home/aina/dev/OpenStudio/src/model/Model_Impl.hpp:54,
                 from /home/aina/dev/OpenStudio/src/model/CoilHeatingGasMultiStage.cpp:7:
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp: In instantiation of ‘T openstudio::IdfExtensibleGroup::cast() const [with T = openstudio::WorkspaceExtensibleGroup]’:
/home/aina/dev/OpenStudio/src/model/CoilHeatingGasMultiStage.cpp:206:63:   required from here
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp:162:12: warning: moving a temporary object prevents copy elision [-Wpessimizing-move]
  162 |     return T(std::move(this->getImpl<typename T::ImplType>()), m_index);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp:162:12: note: remove ‘std::move’ call
[765/9330] Building CXX object src/model/CMakeFiles/openstudio_model.dir/ComponentData.cpp.o
In file included from /home/aina/dev/OpenStudio/src/model/../utilities/idf/WorkspaceExtensibleGroup.hpp:11,
                 from /home/aina/dev/OpenStudio/src/model/ModelExtensibleGroup.hpp:10,
                 from /home/aina/dev/OpenStudio/src/model/ComponentData.cpp:10:
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp: In instantiation of ‘T openstudio::IdfExtensibleGroup::cast() const [with T = openstudio::model::ModelExtensibleGroup]’:
/home/aina/dev/OpenStudio/src/model/ComponentData.cpp:93:63:   required from here
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp:162:12: warning: moving a temporary object prevents copy elision [-Wpessimizing-move]
  162 |     return T(std::move(this->getImpl<typename T::ImplType>()), m_index);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp:162:12: note: remove ‘std::move’ call
[807/9330] Building CXX object src/model/CMakeFiles/openstudio_model.dir/DaylightingDeviceTubular.cpp.o
In file included from /home/aina/dev/OpenStudio/src/model/../utilities/idf/WorkspaceExtensibleGroup.hpp:11,
                 from /home/aina/dev/OpenStudio/src/model/ModelExtensibleGroup.hpp:10,
                 from /home/aina/dev/OpenStudio/src/model/ClimateZones.hpp:11,
                 from /home/aina/dev/OpenStudio/src/model/Model_Impl.hpp:54,
                 from /home/aina/dev/OpenStudio/src/model/DaylightingDeviceTubular.cpp:10:
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp: In instantiation of ‘T openstudio::IdfExtensibleGroup::cast() const [with T = openstudio::WorkspaceExtensibleGroup]’:
/home/aina/dev/OpenStudio/src/model/DaylightingDeviceTubular.cpp:97:47:   required from here
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp:162:12: warning: moving a temporary object prevents copy elision [-Wpessimizing-move]
  162 |     return T(std::move(this->getImpl<typename T::ImplType>()), m_index);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp:162:12: note: remove ‘std::move’ call
[831/9330] Building CXX object src/model/CMakeFiles/openstudio_model.dir/ElectricLoadCenterTransformer.cpp.o
In file included from /home/aina/dev/OpenStudio/src/model/../utilities/idf/WorkspaceExtensibleGroup.hpp:11,
                 from /home/aina/dev/OpenStudio/src/model/ModelExtensibleGroup.hpp:10,
                 from /home/aina/dev/OpenStudio/src/model/ElectricLoadCenterTransformer.cpp:28:
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp: In instantiation of ‘T openstudio::IdfExtensibleGroup::cast() const [with T = openstudio::WorkspaceExtensibleGroup]’:
/home/aina/dev/OpenStudio/src/model/ElectricLoadCenterTransformer.cpp:401:66:   required from here
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp:162:12: warning: moving a temporary object prevents copy elision [-Wpessimizing-move]
  162 |     return T(std::move(this->getImpl<typename T::ImplType>()), m_index);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp:162:12: note: remove ‘std::move’ call
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp: In instantiation of ‘T openstudio::IdfExtensibleGroup::cast() const [with T = openstudio::model::ModelExtensibleGroup]’:
/home/aina/dev/OpenStudio/src/model/ElectricLoadCenterTransformer.cpp:459:57:   required from here
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp:162:12: warning: moving a temporary object prevents copy elision [-Wpessimizing-move]
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp:162:12: note: remove ‘std::move’ call
[836/9330] Building CXX object src/model/CMakeFiles/openstudio_model.dir/EnergyManagementSystemProgramCallingManager.cpp.o
In file included from /home/aina/dev/OpenStudio/src/model/../utilities/idf/WorkspaceExtensibleGroup.hpp:11,
                 from /home/aina/dev/OpenStudio/src/model/ModelExtensibleGroup.hpp:10,
                 from /home/aina/dev/OpenStudio/src/model/EnergyManagementSystemProgramCallingManager.cpp:17:
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp: In instantiation of ‘T openstudio::IdfExtensibleGroup::cast() const [with T = openstudio::WorkspaceExtensibleGroup]’:
/home/aina/dev/OpenStudio/src/model/EnergyManagementSystemProgramCallingManager.cpp:68:57:   required from here
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp:162:12: warning: moving a temporary object prevents copy elision [-Wpessimizing-move]
  162 |     return T(std::move(this->getImpl<typename T::ImplType>()), m_index);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp:162:12: note: remove ‘std::move’ call
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp: In instantiation of ‘T openstudio::IdfExtensibleGroup::cast() const [with T = openstudio::model::ModelExtensibleGroup]’:
/home/aina/dev/OpenStudio/src/model/EnergyManagementSystemProgramCallingManager.cpp:128:57:   required from here
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp:162:12: warning: moving a temporary object prevents copy elision [-Wpessimizing-move]
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp:162:12: note: remove ‘std::move’ call
[841/9330] Building CXX object src/model/CMakeFiles/openstudio_model.dir/EnergyManagementSystemProgram.cpp.o
In file included from /home/aina/dev/OpenStudio/src/model/../utilities/idf/WorkspaceExtensibleGroup.hpp:11,
                 from /home/aina/dev/OpenStudio/src/model/ModelExtensibleGroup.hpp:10,
                 from /home/aina/dev/OpenStudio/src/model/EnergyManagementSystemProgram.cpp:14:
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp: In instantiation of ‘T openstudio::IdfExtensibleGroup::cast() const [with T = openstudio::WorkspaceExtensibleGroup]’:
/home/aina/dev/OpenStudio/src/model/EnergyManagementSystemProgram.cpp:126:103:   required from here
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp:162:12: warning: moving a temporary object prevents copy elision [-Wpessimizing-move]
  162 |     return T(std::move(this->getImpl<typename T::ImplType>()), m_index);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp:162:12: note: remove ‘std::move’ call
[842/9330] Building CXX object src/model/CMakeFiles/openstudio_model.dir/EnergyManagementSystemSubroutine.cpp.o
In file included from /home/aina/dev/OpenStudio/src/model/../utilities/idf/WorkspaceExtensibleGroup.hpp:11,
                 from /home/aina/dev/OpenStudio/src/model/ModelExtensibleGroup.hpp:10,
                 from /home/aina/dev/OpenStudio/src/model/EnergyManagementSystemSubroutine.cpp:14:
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp: In instantiation of ‘T openstudio::IdfExtensibleGroup::cast() const [with T = openstudio::WorkspaceExtensibleGroup]’:
/home/aina/dev/OpenStudio/src/model/EnergyManagementSystemSubroutine.cpp:110:99:   required from here
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp:162:12: warning: moving a temporary object prevents copy elision [-Wpessimizing-move]
  162 |     return T(std::move(this->getImpl<typename T::ImplType>()), m_index);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp:162:12: note: remove ‘std::move’ call
[874/9330] Building CXX object src/model/CMakeFiles/openstudio_model.dir/FanSystemModel.cpp.o
In file included from /home/aina/dev/OpenStudio/src/model/FanSystemModel.cpp:66:
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp: In instantiation of ‘T openstudio::IdfExtensibleGroup::cast() const [with T = openstudio::WorkspaceExtensibleGroup]’:
/home/aina/dev/OpenStudio/src/model/FanSystemModel.cpp:706:94:   required from here
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp:162:12: warning: moving a temporary object prevents copy elision [-Wpessimizing-move]
  162 |     return T(std::move(this->getImpl<typename T::ImplType>()), m_index);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp:162:12: note: remove ‘std::move’ call
[884/9330] Building CXX object src/model/CMakeFiles/openstudio_model.dir/FoundationKiva.cpp.o
In file included from /home/aina/dev/OpenStudio/src/model/../utilities/idf/WorkspaceExtensibleGroup.hpp:11,
                 from /home/aina/dev/OpenStudio/src/model/ModelExtensibleGroup.hpp:10,
                 from /home/aina/dev/OpenStudio/src/model/ClimateZones.hpp:11,
                 from /home/aina/dev/OpenStudio/src/model/Model_Impl.hpp:54,
                 from /home/aina/dev/OpenStudio/src/model/FoundationKiva.cpp:19:
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp: In instantiation of ‘T openstudio::IdfExtensibleGroup::cast() const [with T = openstudio::WorkspaceExtensibleGroup]’:
/home/aina/dev/OpenStudio/src/model/FoundationKiva.cpp:354:96:   required from here
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp:162:12: warning: moving a temporary object prevents copy elision [-Wpessimizing-move]
  162 |     return T(std::move(this->getImpl<typename T::ImplType>()), m_index);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp:162:12: note: remove ‘std::move’ call
[891/9330] Building CXX object src/model/CMakeFiles/openstudio_model.dir/GeneratorFuelCellAirSupply.cpp.o
In file included from /home/aina/dev/OpenStudio/src/model/../utilities/idf/WorkspaceExtensibleGroup.hpp:11,
                 from /home/aina/dev/OpenStudio/src/model/ModelExtensibleGroup.hpp:10,
                 from /home/aina/dev/OpenStudio/src/model/ClimateZones.hpp:11,
                 from /home/aina/dev/OpenStudio/src/model/Model_Impl.hpp:54,
                 from /home/aina/dev/OpenStudio/src/model/GeneratorFuelCellAirSupply.cpp:10:
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp: In instantiation of ‘T openstudio::IdfExtensibleGroup::cast() const [with T = openstudio::WorkspaceExtensibleGroup]’:
/home/aina/dev/OpenStudio/src/model/GeneratorFuelCellAirSupply.cpp:324:96:   required from here
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp:162:12: warning: moving a temporary object prevents copy elision [-Wpessimizing-move]
  162 |     return T(std::move(this->getImpl<typename T::ImplType>()), m_index);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp:162:12: note: remove ‘std::move’ call
[898/9330] Building CXX object src/model/CMakeFiles/openstudio_model.dir/GeneratorFuelSupply.cpp.o
In file included from /home/aina/dev/OpenStudio/src/model/../utilities/idf/WorkspaceExtensibleGroup.hpp:11,
                 from /home/aina/dev/OpenStudio/src/model/ModelExtensibleGroup.hpp:10,
                 from /home/aina/dev/OpenStudio/src/model/ClimateZones.hpp:11,
                 from /home/aina/dev/OpenStudio/src/model/Model_Impl.hpp:54,
                 from /home/aina/dev/OpenStudio/src/model/GeneratorFuelSupply.cpp:7:
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp: In instantiation of ‘T openstudio::IdfExtensibleGroup::cast() const [with T = openstudio::WorkspaceExtensibleGroup]’:
/home/aina/dev/OpenStudio/src/model/GeneratorFuelSupply.cpp:356:96:   required from here
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp:162:12: warning: moving a temporary object prevents copy elision [-Wpessimizing-move]
  162 |     return T(std::move(this->getImpl<typename T::ImplType>()), m_index);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp:162:12: note: remove ‘std::move’ call
[907/9330] Building CXX object src/model/CMakeFiles/openstudio_model.dir/GroundHeatExchangerVertical.cpp.o
In file included from /home/aina/dev/OpenStudio/src/model/../utilities/idf/WorkspaceExtensibleGroup.hpp:11,
                 from /home/aina/dev/OpenStudio/src/model/ModelExtensibleGroup.hpp:10,
                 from /home/aina/dev/OpenStudio/src/model/ClimateZones.hpp:11,
                 from /home/aina/dev/OpenStudio/src/model/Model_Impl.hpp:54,
                 from /home/aina/dev/OpenStudio/src/model/GroundHeatExchangerVertical.cpp:11:
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp: In instantiation of ‘T openstudio::IdfExtensibleGroup::cast() const [with T = openstudio::WorkspaceExtensibleGroup]’:
/home/aina/dev/OpenStudio/src/model/GroundHeatExchangerVertical.cpp:367:94:   required from here
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp:162:12: warning: moving a temporary object prevents copy elision [-Wpessimizing-move]
  162 |     return T(std::move(this->getImpl<typename T::ImplType>()), m_index);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp:162:12: note: remove ‘std::move’ call
[935/9330] Building CXX object src/model/CMakeFiles/openstudio_model.dir/LayeredConstruction.cpp.o
In file included from /home/aina/dev/OpenStudio/src/model/../utilities/idf/WorkspaceExtensibleGroup.hpp:11,
                 from /home/aina/dev/OpenStudio/src/model/ModelExtensibleGroup.hpp:10,
                 from /home/aina/dev/OpenStudio/src/model/LayeredConstruction.cpp:33:
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp: In instantiation of ‘T openstudio::IdfExtensibleGroup::cast() const [with T = openstudio::model::ModelExtensibleGroup]’:
/home/aina/dev/OpenStudio/src/model/LayeredConstruction.cpp:58:57:   required from here
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp:162:12: warning: moving a temporary object prevents copy elision [-Wpessimizing-move]
  162 |     return T(std::move(this->getImpl<typename T::ImplType>()), m_index);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp:162:12: note: remove ‘std::move’ call
[939/9330] Building CXX object src/model/CMakeFiles/openstudio_model.dir/LightingDesignDay.cpp.o
In file included from /home/aina/dev/OpenStudio/src/model/../utilities/idf/WorkspaceExtensibleGroup.hpp:11,
                 from /home/aina/dev/OpenStudio/src/model/ModelExtensibleGroup.hpp:10,
                 from /home/aina/dev/OpenStudio/src/model/LightingDesignDay.cpp:10:
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp: In instantiation of ‘T openstudio::IdfExtensibleGroup::cast() const [with T = openstudio::model::ModelExtensibleGroup]’:
/home/aina/dev/OpenStudio/src/model/LightingDesignDay.cpp:143:72:   required from here
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp:162:12: warning: moving a temporary object prevents copy elision [-Wpessimizing-move]
  162 |     return T(std::move(this->getImpl<typename T::ImplType>()), m_index);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp:162:12: note: remove ‘std::move’ call
[941/9330] Building CXX object src/model/CMakeFiles/openstudio_model.dir/LightingSimulationZone.cpp.o
In file included from /home/aina/dev/OpenStudio/src/model/../utilities/idf/WorkspaceExtensibleGroup.hpp:11,
                 from /home/aina/dev/OpenStudio/src/model/ModelExtensibleGroup.hpp:10,
                 from /home/aina/dev/OpenStudio/src/model/ClimateZones.hpp:11,
                 from /home/aina/dev/OpenStudio/src/model/Model_Impl.hpp:54,
                 from /home/aina/dev/OpenStudio/src/model/LightingSimulationZone.cpp:10:
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp: In instantiation of ‘T openstudio::IdfExtensibleGroup::cast() const [with T = openstudio::model::ModelExtensibleGroup]’:
/home/aina/dev/OpenStudio/src/utilities/core/Containers.hpp:45:48:   required from ‘std::vector<T> openstudio::castVector(const std::vector<U>&) [with T = model::ModelExtensibleGroup; U = IdfExtensibleGroup]’
/home/aina/dev/OpenStudio/src/model/LightingSimulationZone.cpp:66:80:   required from here
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp:162:12: warning: moving a temporary object prevents copy elision [-Wpessimizing-move]
  162 |     return T(std::move(this->getImpl<typename T::ImplType>()), m_index);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp:162:12: note: remove ‘std::move’ call
[951/9330] Building CXX object src/model/CMakeFiles/openstudio_model.dir/MaterialPropertyGlazingSpectralData.cpp.o
In file included from /home/aina/dev/OpenStudio/src/model/../utilities/idf/WorkspaceExtensibleGroup.hpp:11,
                 from /home/aina/dev/OpenStudio/src/model/ModelExtensibleGroup.hpp:10,
                 from /home/aina/dev/OpenStudio/src/model/MaterialPropertyGlazingSpectralData.cpp:8:
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp: In instantiation of ‘T openstudio::IdfExtensibleGroup::cast() const [with T = openstudio::model::ModelExtensibleGroup]’:
/home/aina/dev/OpenStudio/src/model/MaterialPropertyGlazingSpectralData.cpp:92:81:   required from here
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp:162:12: warning: moving a temporary object prevents copy elision [-Wpessimizing-move]
  162 |     return T(std::move(this->getImpl<typename T::ImplType>()), m_index);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp:162:12: note: remove ‘std::move’ call
[953/9330] Building CXX object src/model/CMakeFiles/openstudio_model.dir/MaterialPropertyPhaseChange.cpp.o
In file included from /home/aina/dev/OpenStudio/src/model/../utilities/idf/WorkspaceExtensibleGroup.hpp:11,
                 from /home/aina/dev/OpenStudio/src/model/ModelExtensibleGroup.hpp:10,
                 from /home/aina/dev/OpenStudio/src/model/MaterialPropertyPhaseChange.cpp:15:
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp: In instantiation of ‘T openstudio::IdfExtensibleGroup::cast() const [with T = openstudio::WorkspaceExtensibleGroup]’:
/home/aina/dev/OpenStudio/src/model/MaterialPropertyPhaseChange.cpp:99:47:   required from here
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp:162:12: warning: moving a temporary object prevents copy elision [-Wpessimizing-move]
  162 |     return T(std::move(this->getImpl<typename T::ImplType>()), m_index);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp:162:12: note: remove ‘std::move’ call
[955/9330] Building CXX object src/model/CMakeFiles/openstudio_model.dir/MeterCustom.cpp.o
In file included from /home/aina/dev/OpenStudio/src/model/../utilities/idf/WorkspaceExtensibleGroup.hpp:11,
                 from /home/aina/dev/OpenStudio/src/model/ModelExtensibleGroup.hpp:10,
                 from /home/aina/dev/OpenStudio/src/model/ClimateZones.hpp:11,
                 from /home/aina/dev/OpenStudio/src/model/Model_Impl.hpp:54,
                 from /home/aina/dev/OpenStudio/src/model/MeterCustom.cpp:10:
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp: In instantiation of ‘T openstudio::IdfExtensibleGroup::cast() const [with T = openstudio::WorkspaceExtensibleGroup]’:
/home/aina/dev/OpenStudio/src/model/MeterCustom.cpp:71:94:   required from here
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp:162:12: warning: moving a temporary object prevents copy elision [-Wpessimizing-move]
  162 |     return T(std::move(this->getImpl<typename T::ImplType>()), m_index);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp:162:12: note: remove ‘std::move’ call
[957/9330] Building CXX object src/model/CMakeFiles/openstudio_model.dir/MeterCustomDecrement.cpp.o
In file included from /home/aina/dev/OpenStudio/src/model/../utilities/idf/WorkspaceExtensibleGroup.hpp:11,
                 from /home/aina/dev/OpenStudio/src/model/ModelExtensibleGroup.hpp:10,
                 from /home/aina/dev/OpenStudio/src/model/ClimateZones.hpp:11,
                 from /home/aina/dev/OpenStudio/src/model/Model_Impl.hpp:54,
                 from /home/aina/dev/OpenStudio/src/model/MeterCustomDecrement.cpp:10:
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp: In instantiation of ‘T openstudio::IdfExtensibleGroup::cast() const [with T = openstudio::WorkspaceExtensibleGroup]’:
/home/aina/dev/OpenStudio/src/model/MeterCustomDecrement.cpp:80:94:   required from here
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp:162:12: warning: moving a temporary object prevents copy elision [-Wpessimizing-move]
  162 |     return T(std::move(this->getImpl<typename T::ImplType>()), m_index);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp:162:12: note: remove ‘std::move’ call
[974/9330] Building CXX object src/model/CMakeFiles/openstudio_model.dir/OutputDiagnostics.cpp.o
In file included from /home/aina/dev/OpenStudio/src/model/../utilities/idf/WorkspaceExtensibleGroup.hpp:11,
                 from /home/aina/dev/OpenStudio/src/model/ModelExtensibleGroup.hpp:10,
                 from /home/aina/dev/OpenStudio/src/model/ClimateZones.hpp:11,
                 from /home/aina/dev/OpenStudio/src/model/Model_Impl.hpp:54,
                 from /home/aina/dev/OpenStudio/src/model/OutputDiagnostics.cpp:10:
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp: In instantiation of ‘T openstudio::IdfExtensibleGroup::cast() const [with T = openstudio::WorkspaceExtensibleGroup]’:
/home/aina/dev/OpenStudio/src/model/OutputDiagnostics.cpp:67:94:   required from here
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp:162:12: warning: moving a temporary object prevents copy elision [-Wpessimizing-move]
  162 |     return T(std::move(this->getImpl<typename T::ImplType>()), m_index);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp:162:12: note: remove ‘std::move’ call
[977/9330] Building CXX object src/model/CMakeFiles/openstudio_model.dir/OutputTableSummaryReports.cpp.o
In file included from /home/aina/dev/OpenStudio/src/model/../utilities/idf/WorkspaceExtensibleGroup.hpp:11,
                 from /home/aina/dev/OpenStudio/src/model/ModelExtensibleGroup.hpp:10,
                 from /home/aina/dev/OpenStudio/src/model/ClimateZones.hpp:11,
                 from /home/aina/dev/OpenStudio/src/model/Model_Impl.hpp:54,
                 from /home/aina/dev/OpenStudio/src/model/OutputTableSummaryReports.cpp:12:
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp: In instantiation of ‘T openstudio::IdfExtensibleGroup::cast() const [with T = openstudio::WorkspaceExtensibleGroup]’:
/home/aina/dev/OpenStudio/src/model/OutputTableSummaryReports.cpp:66:94:   required from here
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp:162:12: warning: moving a temporary object prevents copy elision [-Wpessimizing-move]
  162 |     return T(std::move(this->getImpl<typename T::ImplType>()), m_index);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp:162:12: note: remove ‘std::move’ call
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp: In instantiation of ‘T openstudio::IdfExtensibleGroup::cast() const [with T = openstudio::model::ModelExtensibleGroup]’:
/home/aina/dev/OpenStudio/src/model/OutputTableSummaryReports.cpp:144:77:   required from here
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp:162:12: warning: moving a temporary object prevents copy elision [-Wpessimizing-move]
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp:162:12: note: remove ‘std::move’ call
[1001/9330] Building CXX object src/model/CMakeFiles/openstudio_model.dir/PlantEquipmentOperationRangeBasedScheme.cpp.o
In file included from /home/aina/dev/OpenStudio/src/model/../utilities/idf/WorkspaceExtensibleGroup.hpp:11,
                 from /home/aina/dev/OpenStudio/src/model/ModelExtensibleGroup.hpp:10,
                 from /home/aina/dev/OpenStudio/src/model/ClimateZones.hpp:11,
                 from /home/aina/dev/OpenStudio/src/model/Model_Impl.hpp:54,
                 from /home/aina/dev/OpenStudio/src/model/PlantEquipmentOperationRangeBasedScheme.cpp:11:
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp: In instantiation of ‘T openstudio::IdfExtensibleGroup::cast() const [with T = openstudio::WorkspaceExtensibleGroup]’:
/home/aina/dev/OpenStudio/src/model/PlantEquipmentOperationRangeBasedScheme.cpp:60:102:   required from here
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp:162:12: warning: moving a temporary object prevents copy elision [-Wpessimizing-move]
  162 |     return T(std::move(this->getImpl<typename T::ImplType>()), m_index);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp:162:12: note: remove ‘std::move’ call
[1036/9330] Building CXX object src/model/CMakeFiles/openstudio_model.dir/RefrigerationWalkIn.cpp.o
In file included from /home/aina/dev/OpenStudio/src/model/../utilities/idf/WorkspaceExtensibleGroup.hpp:11,
                 from /home/aina/dev/OpenStudio/src/model/ModelExtensibleGroup.hpp:10,
                 from /home/aina/dev/OpenStudio/src/model/ClimateZones.hpp:11,
                 from /home/aina/dev/OpenStudio/src/model/Model_Impl.hpp:54,
                 from /home/aina/dev/OpenStudio/src/model/RefrigerationWalkIn.cpp:19:
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp: In instantiation of ‘T openstudio::IdfExtensibleGroup::cast() const [with T = openstudio::WorkspaceExtensibleGroup]’:
/home/aina/dev/OpenStudio/src/model/RefrigerationWalkIn.cpp:158:94:   required from here
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp:162:12: warning: moving a temporary object prevents copy elision [-Wpessimizing-move]
  162 |     return T(std::move(this->getImpl<typename T::ImplType>()), m_index);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp:162:12: note: remove ‘std::move’ call
[1047/9330] Building CXX object src/model/CMakeFiles/openstudio_model.dir/ScheduleFixedInterval.cpp.o
In file included from /home/aina/dev/OpenStudio/src/model/../utilities/idf/WorkspaceExtensibleGroup.hpp:11,
                 from /home/aina/dev/OpenStudio/src/model/ModelExtensibleGroup.hpp:10,
                 from /home/aina/dev/OpenStudio/src/model/ScheduleFixedInterval.cpp:9:
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp: In instantiation of ‘T openstudio::IdfExtensibleGroup::cast() const [with T = openstudio::model::ModelExtensibleGroup]’:
/home/aina/dev/OpenStudio/src/model/ScheduleFixedInterval.cpp:160:87:   required from here
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp:162:12: warning: moving a temporary object prevents copy elision [-Wpessimizing-move]
  162 |     return T(std::move(this->getImpl<typename T::ImplType>()), m_index);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp:162:12: note: remove ‘std::move’ call
[1050/9330] Building CXX object src/model/CMakeFiles/openstudio_model.dir/ScheduleRule.cpp.o
In file included from /home/aina/dev/OpenStudio/src/model/../utilities/idf/WorkspaceExtensibleGroup.hpp:11,
                 from /home/aina/dev/OpenStudio/src/model/ModelExtensibleGroup.hpp:10,
                 from /home/aina/dev/OpenStudio/src/model/ClimateZones.hpp:11,
                 from /home/aina/dev/OpenStudio/src/model/Model_Impl.hpp:54,
                 from /home/aina/dev/OpenStudio/src/model/ScheduleRule.cpp:16:
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp: In instantiation of ‘T openstudio::IdfExtensibleGroup::cast() const [with T = openstudio::model::ModelExtensibleGroup]’:
/home/aina/dev/OpenStudio/src/model/ScheduleRule.cpp:375:80:   required from here
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp:162:12: warning: moving a temporary object prevents copy elision [-Wpessimizing-move]
  162 |     return T(std::move(this->getImpl<typename T::ImplType>()), m_index);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp:162:12: note: remove ‘std::move’ call
[1053/9330] Building CXX object src/model/CMakeFiles/openstudio_model.dir/ScheduleVariableInterval.cpp.o
In file included from /home/aina/dev/OpenStudio/src/model/../utilities/idf/WorkspaceExtensibleGroup.hpp:11,
                 from /home/aina/dev/OpenStudio/src/model/ModelExtensibleGroup.hpp:10,
                 from /home/aina/dev/OpenStudio/src/model/ScheduleVariableInterval.cpp:9:
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp: In instantiation of ‘T openstudio::IdfExtensibleGroup::cast() const [with T = openstudio::model::ModelExtensibleGroup]’:
/home/aina/dev/OpenStudio/src/model/ScheduleVariableInterval.cpp:240:81:   required from here
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp:162:12: warning: moving a temporary object prevents copy elision [-Wpessimizing-move]
  162 |     return T(std::move(this->getImpl<typename T::ImplType>()), m_index);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp:162:12: note: remove ‘std::move’ call
[1055/9330] Building CXX object src/model/CMakeFiles/openstudio_model.dir/ScheduleYear.cpp.o
In file included from /home/aina/dev/OpenStudio/src/model/../utilities/idf/WorkspaceExtensibleGroup.hpp:11,
                 from /home/aina/dev/OpenStudio/src/model/ModelExtensibleGroup.hpp:10,
                 from /home/aina/dev/OpenStudio/src/model/ClimateZones.hpp:11,
                 from /home/aina/dev/OpenStudio/src/model/Model_Impl.hpp:54,
                 from /home/aina/dev/OpenStudio/src/model/ScheduleYear.cpp:15:
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp: In instantiation of ‘T openstudio::IdfExtensibleGroup::cast() const [with T = openstudio::model::ModelExtensibleGroup]’:
/home/aina/dev/OpenStudio/src/utilities/core/Containers.hpp:45:48:   required from ‘std::vector<T> openstudio::castVector(const std::vector<U>&) [with T = model::ModelExtensibleGroup; U = IdfExtensibleGroup]’
/home/aina/dev/OpenStudio/src/model/ScheduleYear.cpp:98:80:   required from here
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp:162:12: warning: moving a temporary object prevents copy elision [-Wpessimizing-move]
  162 |     return T(std::move(this->getImpl<typename T::ImplType>()), m_index);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp:162:12: note: remove ‘std::move’ call
[1085/9330] Building CXX object src/model/CMakeFiles/openstudio_model.dir/ShadingControl.cpp.o
In file included from /home/aina/dev/OpenStudio/src/model/../utilities/idf/WorkspaceExtensibleGroup.hpp:11,
                 from /home/aina/dev/OpenStudio/src/model/ModelExtensibleGroup.hpp:10,
                 from /home/aina/dev/OpenStudio/src/model/ClimateZones.hpp:11,
                 from /home/aina/dev/OpenStudio/src/model/Model_Impl.hpp:54,
                 from /home/aina/dev/OpenStudio/src/model/ShadingControl.cpp:25:
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp: In instantiation of ‘T openstudio::IdfExtensibleGroup::cast() const [with T = openstudio::WorkspaceExtensibleGroup]’:
/home/aina/dev/OpenStudio/src/model/ShadingControl.cpp:394:83:   required from here
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp:162:12: warning: moving a temporary object prevents copy elision [-Wpessimizing-move]
  162 |     return T(std::move(this->getImpl<typename T::ImplType>()), m_index);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp:162:12: note: remove ‘std::move’ call
[1089/9330] Building CXX object src/model/CMakeFiles/openstudio_model.dir/ShadowCalculation.cpp.o
In file included from /home/aina/dev/OpenStudio/src/model/../utilities/idf/WorkspaceExtensibleGroup.hpp:11,
                 from /home/aina/dev/OpenStudio/src/model/ModelExtensibleGroup.hpp:10,
                 from /home/aina/dev/OpenStudio/src/model/ClimateZones.hpp:11,
                 from /home/aina/dev/OpenStudio/src/model/Model_Impl.hpp:54,
                 from /home/aina/dev/OpenStudio/src/model/ShadowCalculation.cpp:11:
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp: In instantiation of ‘T openstudio::IdfExtensibleGroup::cast() const [with T = openstudio::model::ModelExtensibleGroup]’:
/home/aina/dev/OpenStudio/src/model/ShadowCalculation.cpp:222:77:   required from here
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp:162:12: warning: moving a temporary object prevents copy elision [-Wpessimizing-move]
  162 |     return T(std::move(this->getImpl<typename T::ImplType>()), m_index);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp:162:12: note: remove ‘std::move’ call
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp: In instantiation of ‘T openstudio::IdfExtensibleGroup::cast() const [with T = openstudio::WorkspaceExtensibleGroup]’:
/home/aina/dev/OpenStudio/src/model/ShadowCalculation.cpp:267:94:   required from here
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp:162:12: warning: moving a temporary object prevents copy elision [-Wpessimizing-move]
/home/aina/dev/OpenStudio/src/model/../utilities/idf/IdfExtensibleGroup.hpp:162:12: note: remove ‘std::move’ call

Possible Solution

We should follow the note and remove the warning as indicated by the compiler. Here is the explanation: https://developers.redhat.com/blog/2019/04/12/understanding-when-not-to-stdmove-in-c.

Details

Environment

Some additional details about your environment for this issue (if relevant):

  • Platform (Operating system, version): Ubuntu 24.04
  • Version of OpenStudio (if using an intermediate build, include SHA): 3.8.0

Context

I was trying to compile the project. I just commented the line set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror") in the CMakeList.txt to make it possible.

@ainar ainar added the Triage Issue needs to be assessed and labeled, further information on reported might be needed label Sep 26, 2024
@ainar ainar changed the title std::move calls throw warnings OS does not compile with recent GCC: std::move calls throw warnings Sep 26, 2024
@jmarrec
Copy link
Collaborator

jmarrec commented Oct 7, 2024

Fixed already in 7ba2423

This should be on develop soon when #5242 merges, but you can easily cherry pick that commit

@jmarrec jmarrec closed this as completed Oct 7, 2024
@jmarrec jmarrec self-assigned this Oct 7, 2024
@jmarrec jmarrec added Developer Issue and removed Triage Issue needs to be assessed and labeled, further information on reported might be needed labels Oct 7, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants