If you build the game with Clang on linux (and probably on macOS too) you get the following errors
../../../source/network/NetClient.cpp:280:48: warning: loop variable 'p' has type 'const std::pair<CStr8, PlayerAssignment> &' but is initialized with type 'std::pair<const CStr8, PlayerAssignment>' resulting in a copy [-Wrange-loop-construct] for (const std::pair<CStr, PlayerAssignment>& p : m_PlayerAssignments) ^ ../../../source/network/NetClient.cpp:280:7: note: use non-reference type 'std::pair<CStr8, PlayerAssignment>' to keep the copy or type 'const std::pair<const CStr8, PlayerAssignment> &' to prevent copying for (const std::pair<CStr, PlayerAssignment>& p : m_PlayerAssignments) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1 warning generated. ../../../source/network/NetServer.cpp:741:48: warning: loop variable 'p' has type 'const std::pair<CStr8, PlayerAssignment> &' but is initialized with type 'std::pair<const CStr8, PlayerAssignment>' resulting in a copy [-Wrange-loop-construct] for (const std::pair<CStr, PlayerAssignment>& p : m_PlayerAssignments) ^ ../../../source/network/NetServer.cpp:741:7: note: use non-reference type 'std::pair<CStr8, PlayerAssignment>' to keep the copy or type 'const std::pair<const CStr8, PlayerAssignment> &' to prevent copying for (const std::pair<CStr, PlayerAssignment>& p : m_PlayerAssignments) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../../source/network/NetServer.cpp:853:48: warning: loop variable 'p' has type 'const std::pair<CStr8, PlayerAssignment> &' but is initialized with type 'std::pair<const CStr8, PlayerAssignment>' resulting in a copy [-Wrange-loop-construct] for (const std::pair<CStr, PlayerAssignment>& p : m_PlayerAssignments) ^ ../../../source/network/NetServer.cpp:853:7: note: use non-reference type 'std::pair<CStr8, PlayerAssignment>' to keep the copy or type 'const std::pair<const CStr8, PlayerAssignment> &' to prevent copying for (const std::pair<CStr, PlayerAssignment>& p : m_PlayerAssignments) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../../source/network/NetServer.cpp:1025:49: warning: loop variable 'p' has type 'const std::pair<CStr8, PlayerAssignment> &' but is initialized with type 'std::pair<const CStr8, PlayerAssignment>' resulting in a copy [-Wrange-loop-construct] for (const std::pair<CStr, PlayerAssignment>& p : server.m_PlayerAssignments) ^ ../../../source/network/NetServer.cpp:1025:8: note: use non-reference type 'std::pair<CStr8, PlayerAssignment>' to keep the copy or type 'const std::pair<const CStr8, PlayerAssignment> &' to prevent copying for (const std::pair<CStr, PlayerAssignment>& p : server.m_PlayerAssignments) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 3 warnings generated. ../../../source/network/NetServerTurnManager.cpp:75:34: warning: loop variable 'clientReady' has type 'const std::pair<int, u32> &' (aka 'const pair<int, unsigned int> &') but is initialized with type 'std::pair<const int, unsigned int>' resulting in a copy [-Wrange-loop-construct] for (const std::pair<int, u32>& clientReady : m_ClientsReady) ^ ../../../source/network/NetServerTurnManager.cpp:75:7: note: use non-reference type 'std::pair<int, u32>' (aka 'pair<int, unsigned int>') to keep the copy or type 'const std::pair<const int, unsigned int> &' to prevent copying for (const std::pair<int, u32>& clientReady : m_ClientsReady) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../../source/network/NetServerTurnManager.cpp:125:34: warning: loop variable 'clientSimulated' has type 'const std::pair<int, u32> &' (aka 'const pair<int, unsigned int> &') but is initialized with type 'std::pair<const int, unsigned int>' resulting in a copy [-Wrange-loop-construct] for (const std::pair<int, u32>& clientSimulated : m_ClientsSimulated) ^ ../../../source/network/NetServerTurnManager.cpp:125:7: note: use non-reference type 'std::pair<int, u32>' (aka 'pair<int, unsigned int>') to keep the copy or type 'const std::pair<const int, unsigned int> &' to prevent copying for (const std::pair<int, u32>& clientSimulated : m_ClientsSimulated) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../../source/network/NetServerTurnManager.cpp:140:43: warning: loop variable 'hashPair' has type 'const std::pair<int, std::string> &' (aka 'const pair<int, basic_string<char> > &') but is initialized with type 'const std::pair<const int, std::__cxx11::basic_string<char> >' resulting in a copy [-Wrange-loop-construct] for (const std::pair<int, std::string>& hashPair : clientStateHash.second) ^ ../../../source/network/NetServerTurnManager.cpp:140:8: note: use non-reference type 'std::pair<int, std::string>' (aka 'pair<int, basic_string<char> >') to keep the copy or type 'const std::pair<const int, std::__cxx11::basic_string<char> > &' to prevent copying for (const std::pair<int, std::string>& hashPair : clientStateHash.second) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../../source/network/NetServerTurnManager.cpp:130:57: warning: loop variable 'clientStateHash' has type 'const std::pair<u32, std::map<int, std::string> > &' (aka 'const pair<unsigned int, map<int, basic_string<char> > > &') but is initialized with type 'std::pair<const unsigned int, std::map<int, std::__cxx11::basic_string<char>, std::less<int>, std::allocator<std::pair<const int, std::__cxx11::basic_string<char> > > > >' resulting in a copy [-Wrange-loop-construct] for (const std::pair<u32, std::map<int, std::string>>& clientStateHash : m_ClientStateHashes) ^ ../../../source/network/NetServerTurnManager.cpp:130:7: note: use non-reference type 'std::pair<u32, std::map<int, std::string> >' (aka 'pair<unsigned int, map<int, basic_string<char> > >') to keep the copy or type 'const std::pair<const unsigned int, std::map<int, std::__cxx11::basic_string<char>, std::less<int>, std::allocator<std::pair<const int, std::__cxx11::basic_string<char> > > > > &' to prevent copying for (const std::pair<u32, std::map<int, std::string>>& clientStateHash : m_ClientStateHashes) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 4 warnings generated. ../../../source/lobby/XmppClient.cpp:546:55: warning: loop variable 'p' has type 'const std::pair<glooxwrapper::string, SPlayer> &' but is initialized with type 'std::pair<const glooxwrapper::string, XmppClient::SPlayer>' resulting in a copy [-Wrange-loop-construct] for (const std::pair<glooxwrapper::string, SPlayer>& p : m_PlayerMap) ^ ../../../source/lobby/XmppClient.cpp:546:7: note: use non-reference type 'std::pair<glooxwrapper::string, SPlayer>' to keep the copy or type 'const std::pair<const glooxwrapper::string, XmppClient::SPlayer> &' to prevent copying for (const std::pair<glooxwrapper::string, SPlayer>& p : m_PlayerMap) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1 warning generated. ../../../source/simulation2/components/CCmpCinemaManager.cpp:68:45: warning: loop variable 'it' has type 'const std::pair<CStrW, CCinemaPath> &' but is initialized with type 'std::pair<const CStrW, CCinemaPath>' resulting in a copy [-Wrange-loop-construct] for (const std::pair<CStrW, CCinemaPath>& it : m_Paths) ^ ../../../source/simulation2/components/CCmpCinemaManager.cpp:68:8: note: use non-reference type 'std::pair<CStrW, CCinemaPath>' to keep the copy or type 'const std::pair<const CStrW, CCinemaPath> &' to prevent copying for (const std::pair<CStrW, CCinemaPath>& it : m_Paths) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1 warning generated. ../../../source/simulation2/components/CCmpPathfinder.cpp:261:51: warning: loop variable 'pair' has type 'const std::pair<std::string, pass_class_t> &' (aka 'const pair<basic_string<char>, unsigned short> &') but is initialized with type 'const std::pair<const std::__cxx11::basic_string<char>, unsigned short>' resulting in a copy [-Wrange-loop-construct] for (const std::pair<std::string, pass_class_t>& pair : m_PassClassMasks) ^ ../../../source/simulation2/components/CCmpPathfinder.cpp:261:7: note: use non-reference type 'std::pair<std::string, pass_class_t>' (aka 'pair<basic_string<char>, unsigned short>') to keep the copy or type 'const std::pair<const std::__cxx11::basic_string<char>, unsigned short> &' to prevent copying for (const std::pair<std::string, pass_class_t>& pair : m_PassClassMasks) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1 warning generated. ../../../source/simulation2/components/CCmpRangeManager.cpp:320:26: warning: definition of implicit copy constructor for 'EntityDistanceOrdering' is deprecated because it has a user-declared copy assignment operator [-Wdeprecated-copy] EntityDistanceOrdering& operator=(const EntityDistanceOrdering&); ^ /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/predefined_ops.h:150:40: note: in implicit copy constructor for 'EntityDistanceOrdering' first required here { return _Iter_comp_iter<_Compare>(_GLIBCXX_MOVE(__comp)); } ^ /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/move.h:158:30: note: expanded from macro '_GLIBCXX_MOVE' #define _GLIBCXX_MOVE(__val) std::move(__val) ^ /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_algo.h:5109:27: note: in instantiation of function template specialization '__gnu_cxx::__ops::__iter_comp_iter<EntityDistanceOrdering>' requested here __gnu_cxx::__ops::__iter_comp_iter(__comp)); ^ ../../../source/simulation2/components/CCmpRangeManager.cpp:981:8: note: in instantiation of function template specialization 'std::stable_sort<__gnu_cxx::__normal_iterator<unsigned int *, std::vector<unsigned int, std::allocator<unsigned int> > >, EntityDistanceOrdering>' requested here std::stable_sort(r.begin(), r.end(), EntityDistanceOrdering(m_EntityData, pos)); ^ 1 warning generated. ../../../source/simulation2/components/CCmpTemplateManager.cpp:64:51: warning: loop variable 'templateEnt' has type 'const std::pair<entity_id_t, std::string> &' (aka 'const pair<unsigned int, basic_string<char> > &') but is initialized with type 'std::pair<const unsigned int, std::__cxx11::basic_string<char> >' resulting in a copy [-Wrange-loop-construct] for (const std::pair<entity_id_t, std::string>& templateEnt : m_LatestTemplates) ^ ../../../source/simulation2/components/CCmpTemplateManager.cpp:64:8: note: use non-reference type 'std::pair<entity_id_t, std::string>' (aka 'pair<unsigned int, basic_string<char> >') to keep the copy or type 'const std::pair<const unsigned int, std::__cxx11::basic_string<char> > &' to prevent copying for (const std::pair<entity_id_t, std::string>& templateEnt : m_LatestTemplates) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../../source/simulation2/components/CCmpTemplateManager.cpp:77:57: warning: loop variable 'mapEl' has type 'const std::pair<CStr8, std::vector<entity_id_t> > &' (aka 'const pair<CStr8, vector<unsigned int> > &') but is initialized with type 'std::pair<const CStr8, std::vector<unsigned int, std::allocator<unsigned int> > >' resulting in a copy [-Wrange-loop-construct] for (const std::pair<CStr, std::vector<entity_id_t>>& mapEl : templateMap) ^ ../../../source/simulation2/components/CCmpTemplateManager.cpp:77:8: note: use non-reference type 'std::pair<CStr8, std::vector<entity_id_t> >' (aka 'pair<CStr8, vector<unsigned int> >') to keep the copy or type 'const std::pair<const CStr8, std::vector<unsigned int, std::allocator<unsigned int> > > &' to prevent copying for (const std::pair<CStr, std::vector<entity_id_t>>& mapEl : templateMap) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../../source/simulation2/components/CCmpTemplateManager.cpp:222:50: warning: loop variable 'p' has type 'const std::pair<entity_id_t, std::string> &' (aka 'const pair<unsigned int, basic_string<char> > &') but is initialized with type 'const std::pair<const unsigned int, std::__cxx11::basic_string<char> >' resulting in a copy [-Wrange-loop-construct] for (const std::pair<entity_id_t, std::string>& p : m_LatestTemplates) ^ ../../../source/simulation2/components/CCmpTemplateManager.cpp:222:7: note: use non-reference type 'std::pair<entity_id_t, std::string>' (aka 'pair<unsigned int, basic_string<char> >') to keep the copy or type 'const std::pair<const unsigned int, std::__cxx11::basic_string<char> > &' to prevent copying for (const std::pair<entity_id_t, std::string>& p : m_LatestTemplates) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../../source/simulation2/components/CCmpTemplateManager.cpp:234:50: warning: loop variable 'p' has type 'const std::pair<entity_id_t, std::string> &' (aka 'const pair<unsigned int, basic_string<char> > &') but is initialized with type 'const std::pair<const unsigned int, std::__cxx11::basic_string<char> >' resulting in a copy [-Wrange-loop-construct] for (const std::pair<entity_id_t, std::string>& p : m_LatestTemplates) ^ ../../../source/simulation2/components/CCmpTemplateManager.cpp:234:7: note: use non-reference type 'std::pair<entity_id_t, std::string>' (aka 'pair<unsigned int, basic_string<char> >') to keep the copy or type 'const std::pair<const unsigned int, std::__cxx11::basic_string<char> > &' to prevent copying for (const std::pair<entity_id_t, std::string>& p : m_LatestTemplates) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 4 warnings generated. ../../../source/simulation2/components/CCmpTerritoryManager.cpp:462:64: warning: loop variable 'pair' has type 'const std::pair<player_id_t, std::vector<entity_id_t> > &' (aka 'const pair<int, vector<unsigned int> > &') but is initialized with type 'std::pair<const int, std::vector<unsigned int, std::allocator<unsigned int> > >' resulting in a copy [-Wrange-loop-construct] for (const std::pair<player_id_t, std::vector<entity_id_t> >& pair : influenceEntities) ^ ../../../source/simulation2/components/CCmpTerritoryManager.cpp:462:7: note: use non-reference type 'std::pair<player_id_t, std::vector<entity_id_t> >' (aka 'pair<int, vector<unsigned int> >') to keep the copy or type 'const std::pair<const int, std::vector<unsigned int, std::allocator<unsigned int> > > &' to prevent copying for (const std::pair<player_id_t, std::vector<entity_id_t> >& pair : influenceEntities) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1 warning generated. ../../../source/simulation2/helpers/HierarchicalPathfinder.cpp:470:53: warning: loop variable 'passClassMask' has type 'const std::pair<std::string, pass_class_t> &' (aka 'const pair<basic_string<char>, unsigned short> &') but is initialized with type 'std::pair<const std::__cxx11::basic_string<char>, unsigned short>' resulting in a copy [-Wrange-loop-construct] for (const std::pair<std::string, pass_class_t>& passClassMask : m_PassClassMasks) ^ ../../../source/simulation2/helpers/HierarchicalPathfinder.cpp:470:9: note: use non-reference type 'std::pair<std::string, pass_class_t>' (aka 'pair<basic_string<char>, unsigned short>') to keep the copy or type 'const std::pair<const std::__cxx11::basic_string<char>, unsigned short> &' to prevent copying for (const std::pair<std::string, pass_class_t>& passClassMask : m_PassClassMasks) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../../source/simulation2/helpers/HierarchicalPathfinder.cpp:630:62: warning: loop variable 'regionsInNeed' has type 'const std::pair<pass_class_t, std::vector<RegionID> > &' (aka 'const pair<unsigned short, vector<HierarchicalPathfinder::RegionID> > &') but is initialized with type 'const std::pair<const unsigned short, std::vector<HierarchicalPathfinder::RegionID, std::allocator<HierarchicalPathfinder::RegionID> > >' resulting in a copy [-Wrange-loop-construct] for (const std::pair<pass_class_t, std::vector<RegionID> >& regionsInNeed : needNewGlobalRegionMap) ^ ../../../source/simulation2/helpers/HierarchicalPathfinder.cpp:630:7: note: use non-reference type 'std::pair<pass_class_t, std::vector<RegionID> >' (aka 'pair<unsigned short, vector<HierarchicalPathfinder::RegionID> >') to keep the copy or type 'const std::pair<const unsigned short, std::vector<HierarchicalPathfinder::RegionID, std::allocator<HierarchicalPathfinder::RegionID> > > &' to prevent copying for (const std::pair<pass_class_t, std::vector<RegionID> >& regionsInNeed : needNewGlobalRegionMap) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 warnings generated. ../../../source/ps/ConfigDB.cpp:191:48: warning: loop variable 'p' has type 'const std::pair<CStr8, CConfigValueSet> &' (aka 'const pair<CStr8, vector<CStr8> > &') but is initialized with type 'std::pair<const CStr8, std::vector<CStr8, std::allocator<CStr8> > >' resulting in a copy [-Wrange-loop-construct] for (const std::pair<CStr, CConfigValueSet>& p : m_Map[search_ns]) ^ ../../../source/ps/ConfigDB.cpp:191:8: note: use non-reference type 'std::pair<CStr8, CConfigValueSet>' (aka 'pair<CStr8, vector<CStr8> >') to keep the copy or type 'const std::pair<const CStr8, std::vector<CStr8, std::allocator<CStr8> > > &' to prevent copying for (const std::pair<CStr, CConfigValueSet>& p : m_Map[search_ns]) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../../source/ps/ConfigDB.cpp:195:47: warning: loop variable 'p' has type 'const std::pair<CStr8, CConfigValueSet> &' (aka 'const pair<CStr8, vector<CStr8> > &') but is initialized with type 'std::pair<const CStr8, std::vector<CStr8, std::allocator<CStr8> > >' resulting in a copy [-Wrange-loop-construct] for (const std::pair<CStr, CConfigValueSet>& p : m_Map[CFG_COMMAND]) ^ ../../../source/ps/ConfigDB.cpp:195:7: note: use non-reference type 'std::pair<CStr8, CConfigValueSet>' (aka 'pair<CStr8, vector<CStr8> >') to keep the copy or type 'const std::pair<const CStr8, std::vector<CStr8, std::allocator<CStr8> > > &' to prevent copying for (const std::pair<CStr, CConfigValueSet>& p : m_Map[CFG_COMMAND]) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../../source/ps/ConfigDB.cpp:434:47: warning: loop variable 'p' has type 'const std::pair<CStr8, CConfigValueSet> &' (aka 'const pair<CStr8, vector<CStr8> > &') but is initialized with type 'std::pair<const CStr8, std::vector<CStr8, std::allocator<CStr8> > >' resulting in a copy [-Wrange-loop-construct] for (const std::pair<CStr, CConfigValueSet>& p : m_Map[ns]) ^ ../../../source/ps/ConfigDB.cpp:434:7: note: use non-reference type 'std::pair<CStr8, CConfigValueSet>' (aka 'pair<CStr8, vector<CStr8> >') to keep the copy or type 'const std::pair<const CStr8, std::vector<CStr8, std::allocator<CStr8> > > &' to prevent copying for (const std::pair<CStr, CConfigValueSet>& p : m_Map[ns]) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 3 warnings generated. ../../../source/ps/Hotkey.cpp:43:47: warning: loop variable 'configPair' has type 'const std::pair<CStr8, CConfigValueSet> &' (aka 'const pair<CStr8, vector<CStr8> > &') but is initialized with type 'std::pair<const CStr8, std::vector<CStr8, std::allocator<CStr8> > >' resulting in a copy [-Wrange-loop-construct] for (const std::pair<CStr, CConfigValueSet>& configPair : g_ConfigDB.GetValuesWithPrefix(CFG_COMMAND, "hotkey.")) ^ ../../../source/ps/Hotkey.cpp:43:7: note: use non-reference type 'std::pair<CStr8, CConfigValueSet>' (aka 'pair<CStr8, vector<CStr8> >') to keep the copy or type 'const std::pair<const CStr8, std::vector<CStr8, std::allocator<CStr8> > > &' to prevent copying for (const std::pair<CStr, CConfigValueSet>& configPair : g_ConfigDB.GetValuesWithPrefix(CFG_COMMAND, "hotkey.")) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../../source/ps/Hotkey.cpp:96:41: warning: loop variable 'p' has type 'const std::pair<int, KeyMapping> &' (aka 'const pair<int, vector<SHotkeyMapping> > &') but is initialized with type 'std::pair<const int, std::vector<SHotkeyMapping, std::allocator<SHotkeyMapping> > >' resulting in a copy [-Wrange-loop-construct] for (const std::pair<int, KeyMapping>& p : g_HotkeyMap) ^ ../../../source/ps/Hotkey.cpp:96:7: note: use non-reference type 'std::pair<int, KeyMapping>' (aka 'pair<int, vector<SHotkeyMapping> >') to keep the copy or type 'const std::pair<const int, std::vector<SHotkeyMapping, std::allocator<SHotkeyMapping> > > &' to prevent copying for (const std::pair<int, KeyMapping>& p : g_HotkeyMap) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 warnings generated. ../../../source/ps/ProfileViewer.cpp:483:21: warning: definition of implicit copy constructor for 'WriteTable' is deprecated because it has a user-declared copy assignment operator [-Wdeprecated-copy] const WriteTable& operator=(const WriteTable&); ^ /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_algo.h:3877:14: note: in implicit copy constructor for '(anonymous namespace)::WriteTable' first required here return __f; // N.B. [alg.foreach] says std::move(f) but it's redundant. ^ ../../../source/ps/ProfileViewer.cpp:598:2: note: in instantiation of function template specialization 'std::for_each<__gnu_cxx::__normal_iterator<AbstractProfileTable **, std::vector<AbstractProfileTable *, std::allocator<AbstractProfileTable *> > >, (anonymous namespace)::WriteTable>' requested here for_each(tables.begin(), tables.end(), WriteTable(m->outputStream)); ^ 1 warning generated. ../../../source/ps/Profiler2.cpp:590:50: warning: loop variable 'type' has type 'const std::pair<std::string, infoPerType> &' (aka 'const pair<basic_string<char>, tuple<const char *, double, set<basic_string<char> > > > &') but is initialized with type 'std::pair<const std::__cxx11::basic_string<char>, std::tuple<const char *, double, std::set<std::__cxx11::basic_string<char>, std::less<std::__cxx11::basic_string<char> >, std::allocator<std::__cxx11::basic_string<char> > > > >' resulting in a copy [-Wrange-loop-construct] for (const std::pair<std::string, infoPerType>& type : timeByType) ^ ../../../source/ps/Profiler2.cpp:590:7: note: use non-reference type 'std::pair<std::string, infoPerType>' (aka 'pair<basic_string<char>, tuple<const char *, double, set<basic_string<char> > > >') to keep the copy or type 'const std::pair<const std::__cxx11::basic_string<char>, std::tuple<const char *, double, std::set<std::__cxx11::basic_string<char>, std::less<std::__cxx11::basic_string<char> >, std::allocator<std::__cxx11::basic_string<char> > > > > &' to prevent copying for (const std::pair<std::string, infoPerType>& type : timeByType) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1 warning generated. In file included from ../../../source/ps/XML/XeroXMB.cpp:20: In file included from ../../../source/ps/XML/Xeromyces.h:33: ../../../source/ps/XML/XeroXMB.h:214:15: warning: private field 'm_Pointer' is not used [-Wunused-private-field] const char* m_Pointer; ^ ../../../source/ps/XML/XeroXMB.h:283:15: warning: private field 'm_Pointer' is not used [-Wunused-private-field] const char* m_Pointer; ^ 2 warnings generated. ../../../source/ps/scripting/JSInterface_Hotkey.cpp:78:51: warning: loop variable 'key' has type 'const std::pair<SDL_Scancode_, KeyMapping> &' (aka 'const pair<int, vector<SHotkeyMapping> > &') but is initialized with type 'std::pair<const int, std::vector<SHotkeyMapping, std::allocator<SHotkeyMapping> > >' resulting in a copy [-Wrange-loop-construct] for (const std::pair<SDL_Scancode_, KeyMapping>& key : g_HotkeyMap) ^ ../../../source/ps/scripting/JSInterface_Hotkey.cpp:78:7: note: use non-reference type 'std::pair<SDL_Scancode_, KeyMapping>' (aka 'pair<int, vector<SHotkeyMapping> >') to keep the copy or type 'const std::pair<const int, std::vector<SHotkeyMapping, std::allocator<SHotkeyMapping> > > &' to prevent copying for (const std::pair<SDL_Scancode_, KeyMapping>& key : g_HotkeyMap) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1 warning generated. ../../../source/ps/scripting/JSInterface_ModIo.cpp:102:51: warning: loop variable 'prop' has type 'const std::pair<std::string, std::string> &' (aka 'const pair<basic_string<char>, basic_string<char> > &') but is initialized with type 'const std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >' resulting in a copy [-Wrange-loop-construct] for (const std::pair<std::string, std::string>& prop : mod.properties) ^ ../../../source/ps/scripting/JSInterface_ModIo.cpp:102:8: note: use non-reference type 'std::pair<std::string, std::string>' (aka 'pair<basic_string<char>, basic_string<char> >') to keep the copy or type 'const std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > &' to prevent copying for (const std::pair<std::string, std::string>& prop : mod.properties) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1 warning generated. ../../../source/soundmanager/SoundManager.cpp:278:52: warning: loop variable 'p' has type 'const std::pair<std::wstring, CSoundGroup *> &' (aka 'const pair<basic_string<wchar_t>, CSoundGroup *> &') but is initialized with type 'std::pair<const std::__cxx11::basic_string<wchar_t>, CSoundGroup *>' resulting in a copy [-Wrange-loop-construct] for (const std::pair<std::wstring, CSoundGroup*>& p : m_SoundGroups) ^ ../../../source/soundmanager/SoundManager.cpp:278:7: note: use non-reference type 'std::pair<std::wstring, CSoundGroup *>' (aka 'pair<basic_string<wchar_t>, CSoundGroup *>') to keep the copy or type 'const std::pair<const std::__cxx11::basic_string<wchar_t>, CSoundGroup *> &' to prevent copying for (const std::pair<std::wstring, CSoundGroup*>& p : m_SoundGroups) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1 warning generated. ../../../source/graphics/CinemaManager.cpp:79:44: warning: loop variable 'p' has type 'const std::pair<CStrW, CCinemaPath> &' but is initialized with type 'const std::pair<const CStrW, CCinemaPath>' resulting in a copy [-Wrange-loop-construct] for (const std::pair<CStrW, CCinemaPath>& p : cmpCinemaManager->GetPaths()) ^ ../../../source/graphics/CinemaManager.cpp:79:7: note: use non-reference type 'std::pair<CStrW, CCinemaPath>' to keep the copy or type 'const std::pair<const CStrW, CCinemaPath> &' to prevent copying for (const std::pair<CStrW, CCinemaPath>& p : cmpCinemaManager->GetPaths()) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1 warning generated. ../../../source/graphics/ObjectEntry.cpp:49:46: warning: loop variable 'anim' has type 'const std::pair<CStr8, CSkeletonAnim *> &' but is initialized with type 'std::pair<const CStr8, CSkeletonAnim *>' resulting in a copy [-Wrange-loop-construct] for (const std::pair<CStr, CSkeletonAnim*>& anim : m_Animations) ^ ../../../source/graphics/ObjectEntry.cpp:49:7: note: use non-reference type 'std::pair<CStr8, CSkeletonAnim *>' to keep the copy or type 'const std::pair<const CStr8, CSkeletonAnim *> &' to prevent copying for (const std::pair<CStr, CSkeletonAnim*>& anim : m_Animations) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1 warning generated. ../../../source/graphics/ObjectManager.cpp:173:50: warning: loop variable 'p' has type 'const std::pair<ObjectKey, CObjectEntry *> &' but is initialized with type 'std::pair<const CObjectManager::ObjectKey, CObjectEntry *>' resulting in a copy [-Wrange-loop-construct] for (const std::pair<ObjectKey, CObjectEntry*>& p : m_Objects) ^ ../../../source/graphics/ObjectManager.cpp:173:7: note: use non-reference type 'std::pair<ObjectKey, CObjectEntry *>' to keep the copy or type 'const std::pair<const CObjectManager::ObjectKey, CObjectEntry *> &' to prevent copying for (const std::pair<ObjectKey, CObjectEntry*>& p : m_Objects) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../../source/graphics/ObjectManager.cpp:177:45: warning: loop variable 'p' has type 'const std::pair<CStrW, CObjectBase *> &' but is initialized with type 'std::pair<const CStrW, CObjectBase *>' resulting in a copy [-Wrange-loop-construct] for (const std::pair<CStrW, CObjectBase*>& p : m_ObjectBases) ^ ../../../source/graphics/ObjectManager.cpp:177:7: note: use non-reference type 'std::pair<CStrW, CObjectBase *>' to keep the copy or type 'const std::pair<const CStrW, CObjectBase *> &' to prevent copying for (const std::pair<CStrW, CObjectBase*>& p : m_ObjectBases) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 warnings generated. ../../../source/graphics/TerrainTextureManager.cpp:66:46: warning: loop variable 'tg' has type 'const std::pair<CStr8, CTerrainGroup *> &' but is initialized with type 'std::pair<const CStr8, CTerrainGroup *>' resulting in a copy [-Wrange-loop-construct] for (const std::pair<CStr, CTerrainGroup*>& tg : m_TerrainGroups) ^ ../../../source/graphics/TerrainTextureManager.cpp:66:7: note: use non-reference type 'std::pair<CStr8, CTerrainGroup *>' to keep the copy or type 'const std::pair<const CStr8, CTerrainGroup *> &' to prevent copying for (const std::pair<CStr, CTerrainGroup*>& tg : m_TerrainGroups) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1 warning generated. ../../../source/graphics/Unit.cpp:93:36: warning: loop variable 's' has type 'const std::pair<CStr8, CStr8> &' but is initialized with type 'const std::pair<const CStr8, CStr8>' resulting in a copy [-Wrange-loop-construct] for (const std::pair<CStr, CStr>& s : selections) ^ ../../../source/graphics/Unit.cpp:93:7: note: use non-reference type 'std::pair<CStr8, CStr8>' to keep the copy or type 'const std::pair<const CStr8, CStr8> &' to prevent copying for (const std::pair<CStr, CStr>& s : selections) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../../source/graphics/Unit.cpp:108:36: warning: loop variable 'selection' has type 'const std::pair<CStr8, CStr8> &' but is initialized with type 'std::pair<const CStr8, CStr8>' resulting in a copy [-Wrange-loop-construct] for (const std::pair<CStr, CStr>& selection : m_EntitySelections) ^ ../../../source/graphics/Unit.cpp:108:7: note: use non-reference type 'std::pair<CStr8, CStr8>' to keep the copy or type 'const std::pair<const CStr8, CStr8> &' to prevent copying for (const std::pair<CStr, CStr>& selection : m_EntitySelections) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 warnings generated. ../../../source/renderer/ModelRenderer.cpp:331:24: warning: definition of implicit copy constructor for 'SMRMaterialBucketKey' is deprecated because it has a user-declared copy assignment operator [-Wdeprecated-copy] SMRMaterialBucketKey& operator=(const SMRMaterialBucketKey&); ^ /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_pair.h:342:4: note: in implicit copy constructor for 'SMRMaterialBucketKey' first required here : first(std::forward<_U1>(__x)), second(std::forward<_U2>(__y)) { } ^ /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_pair.h:529:14: note: in instantiation of function template specialization 'std::pair<SMRMaterialBucketKey, std::vector<CModel *, ProxyAllocator<CModel *, Allocators::DynamicArena> > >::pair<SMRMaterialBucketKey &, std::vector<CModel *, ProxyAllocator<CModel *, Allocators::DynamicArena> >, true>' requested here return __pair_type(std::forward<_T1>(__x), std::forward<_T2>(__y)); ^ ../../../source/renderer/ModelRenderer.cpp:477:11: note: in instantiation of function template specialization 'std::make_pair<SMRMaterialBucketKey &, std::vector<CModel *, ProxyAllocator<CModel *, Allocators::DynamicArena> > >' requested here std::make_pair(key, ModelList_t(ModelList_t::allocator_type(arena)))); ^ 1 warning generated. ../../../source/renderer/PatchRData.cpp:1146:62: warning: loop variable 'batchIndexBuffer' has type 'const std::pair<CVertexBuffer *, StreamBatchElements> &' (aka 'const pair<CVertexBuffer *, pair<vector<int>, vector<void *> > > &') but is initialized with type 'const std::pair<CVertexBuffer *const, std::pair<std::vector<int, std::allocator<int> >, std::vector<void *, std::allocator<void *> > > >' resulting in a copy [-Wrange-loop-construct] for (const std::pair<CVertexBuffer*, StreamBatchElements>& batchIndexBuffer : streamBatch.second) ^ ../../../source/renderer/PatchRData.cpp:1146:8: note: use non-reference type 'std::pair<CVertexBuffer *, StreamBatchElements>' (aka 'pair<CVertexBuffer *, pair<vector<int>, vector<void *> > >') to keep the copy or type 'const std::pair<CVertexBuffer *const, std::pair<std::vector<int, std::allocator<int> >, std::vector<void *, std::allocator<void *> > > > &' to prevent copying for (const std::pair<CVertexBuffer*, StreamBatchElements>& batchIndexBuffer : streamBatch.second) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../../source/renderer/PatchRData.cpp:1133:66: warning: loop variable 'streamBatch' has type 'const std::pair<CVertexBuffer *, StreamIndexBufferBatches> &' (aka 'const pair<CVertexBuffer *, map<CVertexBuffer *, pair<vector<int>, vector<void *> > > > &') but is initialized with type 'std::pair<CVertexBuffer *const, std::map<CVertexBuffer *, std::pair<std::vector<int, std::allocator<int> >, std::vector<void *, std::allocator<void *> > >, std::less<CVertexBuffer *>, std::allocator<std::pair<CVertexBuffer *const, std::pair<std::vector<int, std::allocator<int> >, std::vector<void *, std::allocator<void *> > > > > > >' resulting in a copy [-Wrange-loop-construct] for (const std::pair<CVertexBuffer*, StreamIndexBufferBatches>& streamBatch : batches) ^ ../../../source/renderer/PatchRData.cpp:1133:7: note: use non-reference type 'std::pair<CVertexBuffer *, StreamIndexBufferBatches>' (aka 'pair<CVertexBuffer *, map<CVertexBuffer *, pair<vector<int>, vector<void *> > > >') to keep the copy or type 'const std::pair<CVertexBuffer *const, std::map<CVertexBuffer *, std::pair<std::vector<int, std::allocator<int> >, std::vector<void *, std::allocator<void *> > >, std::less<CVertexBuffer *>, std::allocator<std::pair<CVertexBuffer *const, std::pair<std::vector<int, std::allocator<int> >, std::vector<void *, std::allocator<void *> > > > > > > &' to prevent copying for (const std::pair<CVertexBuffer*, StreamIndexBufferBatches>& streamBatch : batches) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 warnings generated. ../../../source/renderer/TerrainRenderer.cpp:675:4: warning: misleading indentation; statement is not part of the previous 'if' [-Wmisleading-indentation] m->fancyWaterShader = g_Renderer.GetShaderManager().LoadProgram("glsl/water_high", defines); ^ ../../../source/renderer/TerrainRenderer.cpp:668:3: note: previous statement is here if (shadow && WaterMgr->m_WaterShadows) ^ 1 warning generated. ../../../source/tools/atlas/GameInterface/Handlers/CinemaHandler.cpp:494:44: warning: loop variable 'p' has type 'const std::pair<CStrW, CCinemaPath> &' but is initialized with type 'const std::pair<const CStrW, CCinemaPath>' resulting in a copy [-Wrange-loop-construct] for (const std::pair<CStrW, CCinemaPath>& p : cmpCinemaManager->GetPaths()) ^ ../../../source/tools/atlas/GameInterface/Handlers/CinemaHandler.cpp:494:7: note: use non-reference type 'std::pair<CStrW, CCinemaPath>' to keep the copy or type 'const std::pair<const CStrW, CCinemaPath> &' to prevent copying for (const std::pair<CStrW, CCinemaPath>& p : cmpCinemaManager->GetPaths()) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1 warning generated. ../../../source/tools/atlas/GameInterface/Handlers/MapHandlers.cpp:521:51: warning: loop variable 'ent' has type 'const std::pair<entity_id_t, IComponent *> &' (aka 'const pair<unsigned int, IComponent *> &') but is initialized with type 'const std::pair<const unsigned int, IComponent *>' resulting in a copy [-Wrange-loop-construct] for (const std::pair<entity_id_t, IComponent*>& ent : ents) ^ ../../../source/tools/atlas/GameInterface/Handlers/MapHandlers.cpp:521:8: note: use non-reference type 'std::pair<entity_id_t, IComponent *>' (aka 'pair<unsigned int, IComponent *>') to keep the copy or type 'const std::pair<const unsigned int, IComponent *> &' to prevent copying for (const std::pair<entity_id_t, IComponent*>& ent : ents) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1 warning generated. ../../../source/tools/atlas/GameInterface/Handlers/ObjectHandlers.cpp:770:49: warning: loop variable 'p' has type 'const std::pair<entity_id_t, CVector3D> &' (aka 'const pair<unsigned int, CVector3D> &') but is initialized with type 'const std::pair<const unsigned int, CVector3D>' resulting in a copy [-Wrange-loop-construct] for (const std::pair<entity_id_t, CVector3D>& p : map) ^ ../../../source/tools/atlas/GameInterface/Handlers/ObjectHandlers.cpp:770:8: note: use non-reference type 'std::pair<entity_id_t, CVector3D>' (aka 'pair<unsigned int, CVector3D>') to keep the copy or type 'const std::pair<const unsigned int, CVector3D> &' to prevent copying for (const std::pair<entity_id_t, CVector3D>& p : map) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../../source/tools/atlas/GameInterface/Handlers/ObjectHandlers.cpp:862:49: warning: loop variable 'p' has type 'const std::pair<entity_id_t, CVector3D> &' (aka 'const pair<unsigned int, CVector3D> &') but is initialized with type 'const std::pair<const unsigned int, CVector3D>' resulting in a copy [-Wrange-loop-construct] for (const std::pair<entity_id_t, CVector3D>& p : position) ^ ../../../source/tools/atlas/GameInterface/Handlers/ObjectHandlers.cpp:862:8: note: use non-reference type 'std::pair<entity_id_t, CVector3D>' (aka 'pair<unsigned int, CVector3D>') to keep the copy or type 'const std::pair<const unsigned int, CVector3D> &' to prevent copying for (const std::pair<entity_id_t, CVector3D>& p : position) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../../source/tools/atlas/GameInterface/Handlers/ObjectHandlers.cpp:876:49: warning: loop variable 'p' has type 'const std::pair<entity_id_t, CVector3D> &' (aka 'const pair<unsigned int, CVector3D> &') but is initialized with type 'const std::pair<const unsigned int, CVector3D>' resulting in a copy [-Wrange-loop-construct] for (const std::pair<entity_id_t, CVector3D>& p: position) ^ ../../../source/tools/atlas/GameInterface/Handlers/ObjectHandlers.cpp:876:8: note: use non-reference type 'std::pair<entity_id_t, CVector3D>' (aka 'pair<unsigned int, CVector3D>') to keep the copy or type 'const std::pair<const unsigned int, CVector3D> &' to prevent copying for (const std::pair<entity_id_t, CVector3D>& p: position) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../../source/tools/atlas/GameInterface/Handlers/ObjectHandlers.cpp:966:45: warning: loop variable 'p' has type 'const std::pair<entity_id_t, float> &' (aka 'const pair<unsigned int, float> &') but is initialized with type 'const std::pair<const unsigned int, float>' resulting in a copy [-Wrange-loop-construct] for (const std::pair<entity_id_t, float>& p : angles) ^ ../../../source/tools/atlas/GameInterface/Handlers/ObjectHandlers.cpp:966:8: note: use non-reference type 'std::pair<entity_id_t, float>' (aka 'pair<unsigned int, float>') to keep the copy or type 'const std::pair<const unsigned int, float> &' to prevent copying for (const std::pair<entity_id_t, float>& p : angles) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 4 warnings generated. ../../../source/tools/atlas/GameInterface/View.cpp:182:49: warning: loop variable 'p' has type 'const std::pair<std::wstring, SimState *> &' (aka 'const pair<basic_string<wchar_t>, SimState *> &') but is initialized with type 'std::pair<const std::__cxx11::basic_string<wchar_t>, SimState *>' resulting in a copy [-Wrange-loop-construct] for (const std::pair<std::wstring, SimState*>& p : m_SavedStates) ^ ../../../source/tools/atlas/GameInterface/View.cpp:182:7: note: use non-reference type 'std::pair<std::wstring, SimState *>' (aka 'pair<basic_string<wchar_t>, SimState *>') to keep the copy or type 'const std::pair<const std::__cxx11::basic_string<wchar_t>, SimState *> &' to prevent copying for (const std::pair<std::wstring, SimState*>& p : m_SavedStates) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1 warning generated. ../../../source/gui/CGUI.cpp:80:43: warning: loop variable 'p' has type 'const std::pair<CStr8, IGUIObject *> &' but is initialized with type 'std::pair<const CStr8, IGUIObject *>' resulting in a copy [-Wrange-loop-construct] for (const std::pair<CStr, IGUIObject*>& p : m_pAllObjects) ^ ../../../source/gui/CGUI.cpp:80:7: note: use non-reference type 'std::pair<CStr8, IGUIObject *>' to keep the copy or type 'const std::pair<const CStr8, IGUIObject *> &' to prevent copying for (const std::pair<CStr, IGUIObject*>& p : m_pAllObjects) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../../source/gui/CGUI.cpp:83:49: warning: loop variable 'p' has type 'const std::pair<CStr8, const CGUISprite *> &' but is initialized with type 'std::pair<const CStr8, const CGUISprite *>' resulting in a copy [-Wrange-loop-construct] for (const std::pair<CStr, const CGUISprite*>& p : m_Sprites) ^ ../../../source/gui/CGUI.cpp:83:7: note: use non-reference type 'std::pair<CStr8, const CGUISprite *>' to keep the copy or type 'const std::pair<const CStr8, const CGUISprite *> &' to prevent copying for (const std::pair<CStr, const CGUISprite*>& p : m_Sprites) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 warnings generated. ../../../source/gui/ObjectBases/IGUIObject.cpp:77:44: warning: loop variable 'p' has type 'const std::pair<CStr8, IGUISetting *> &' but is initialized with type 'std::pair<const CStr8, IGUISetting *>' resulting in a copy [-Wrange-loop-construct] for (const std::pair<CStr, IGUISetting*>& p : m_Settings) ^ ../../../source/gui/ObjectBases/IGUIObject.cpp:77:7: note: use non-reference type 'std::pair<CStr8, IGUISetting *>' to keep the copy or type 'const std::pair<const CStr8, IGUISetting *> &' to prevent copying for (const std::pair<CStr, IGUISetting*>& p : m_Settings) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../../source/gui/ObjectBases/IGUIObject.cpp:285:37: warning: loop variable 'p' has type 'const std::pair<CStr8, CStrW> &' but is initialized with type 'const std::pair<const CStr8, CStrW>' resulting in a copy [-Wrange-loop-construct] for (const std::pair<CStr, CStrW>& p : m_pGUI.GetStyle(StyleName).m_SettingsDefaults) ^ ../../../source/gui/ObjectBases/IGUIObject.cpp:285:7: note: use non-reference type 'std::pair<CStr8, CStrW>' to keep the copy or type 'const std::pair<const CStr8, CStrW> &' to prevent copying for (const std::pair<CStr, CStrW>& p : m_pGUI.GetStyle(StyleName).m_SettingsDefaults) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 warnings generated. ../../../source/gui/ObjectTypes/CDropDown.cpp:311:34: warning: overlapping comparisons always evaluate to false [-Wtautological-overlap-compare] || (szChar >= SDLK_KP_0 && szChar <= SDLK_KP_9))) ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~ 1 warning generated. ../../../source/lib/allocators/headerless.cpp:760:43: warning: 'Allocate' is missing exception specification '__attribute__((nothrow))' [-Wmissing-exception-spec] NOTHROW_DEFINE void* HeaderlessAllocator::Allocate(size_t size) ^ __attribute__((nothrow)) ../../../source/lib/allocators/headerless.h:79:24: note: previous declaration is here NOTHROW_DECLARE void* Allocate(size_t size); ^ 1 warning generated. clang: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument] clang: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument] clang: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument] clang: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument] clang: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument] clang: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument] clang: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument] clang: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument] clang: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument] clang: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument] clang: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument] clang: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument] clang: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument] clang: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument] clang: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument] clang: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument] clang: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument] clang: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument] clang: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument] clang: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument] clang: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument] clang: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument] clang: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument] clang: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument] clang: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument] clang: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument] clang: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument] clang: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument] clang: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument] clang: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument] clang: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument] clang: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument] clang: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument] clang: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument] clang: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument] clang: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument] clang: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument] clang: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument] clang: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument] clang: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument] clang: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument] clang: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument] clang: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument] clang: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument] clang: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument] clang: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument] clang: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument] clang: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument] clang: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument] clang: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument] clang: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument] clang: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument] clang: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument] clang: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument] clang: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument] clang: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument] clang: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument] clang: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument] clang: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument] ../../../source/tools/atlas/AtlasUI/ScenarioEditor/Sections/Map/Map.cpp:242:37: warning: loop variable 'vc' has type 'const std::pair<long, AtObj> &' but is initialized with type 'std::pair<const long, AtObj>' resulting in a copy [-Wrange-loop-construct] for (const std::pair<long, AtObj>& vc : m_VictoryConditions) ^ ../../../source/tools/atlas/AtlasUI/ScenarioEditor/Sections/Map/Map.cpp:242:7: note: use non-reference type 'std::pair<long, AtObj>' to keep the copy or type 'const std::pair<const long, AtObj> &' to prevent copying for (const std::pair<long, AtObj>& vc : m_VictoryConditions) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../../source/tools/atlas/AtlasUI/ScenarioEditor/Sections/Map/Map.cpp:252:37: warning: loop variable 'vc' has type 'const std::pair<long, AtObj> &' but is initialized with type 'std::pair<const long, AtObj>' resulting in a copy [-Wrange-loop-construct] for (const std::pair<long, AtObj>& vc : m_VictoryConditions) ^ ../../../source/tools/atlas/AtlasUI/ScenarioEditor/Sections/Map/Map.cpp:252:7: note: use non-reference type 'std::pair<long, AtObj>' to keep the copy or type 'const std::pair<const long, AtObj> &' to prevent copying for (const std::pair<long, AtObj>& vc : m_VictoryConditions) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../../source/tools/atlas/AtlasUI/ScenarioEditor/Sections/Map/Map.cpp:301:37: warning: loop variable 'vc' has type 'const std::pair<long, AtObj> &' but is initialized with type 'std::pair<const long, AtObj>' resulting in a copy [-Wrange-loop-construct] for (const std::pair<long, AtObj>& vc : m_VictoryConditions) ^ ../../../source/tools/atlas/AtlasUI/ScenarioEditor/Sections/Map/Map.cpp:301:7: note: use non-reference type 'std::pair<long, AtObj>' to keep the copy or type 'const std::pair<const long, AtObj> &' to prevent copying for (const std::pair<long, AtObj>& vc : m_VictoryConditions) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../../source/tools/atlas/AtlasUI/ScenarioEditor/Sections/Map/Map.cpp:314:39: warning: loop variable 'vc' has type 'const std::pair<long, AtObj> &' but is initialized with type 'std::pair<const long, AtObj>' resulting in a copy [-Wrange-loop-construct] for (const std::pair<long, AtObj>& vc : m_VictoryConditions) ^ ../../../source/tools/atlas/AtlasUI/ScenarioEditor/Sections/Map/Map.cpp:314:9: note: use non-reference type 'std::pair<long, AtObj>' to keep the copy or type 'const std::pair<const long, AtObj> &' to prevent copying for (const std::pair<long, AtObj>& vc : m_VictoryConditions) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../../source/tools/atlas/AtlasUI/ScenarioEditor/Sections/Map/Map.cpp:336:38: warning: loop variable 'vc2' has type 'const std::pair<long, AtObj> &' but is initialized with type 'std::pair<const long, AtObj>' resulting in a copy [-Wrange-loop-construct] for (const std::pair<long, AtObj>& vc2 : m_VictoryConditions) ^ ../../../source/tools/atlas/AtlasUI/ScenarioEditor/Sections/Map/Map.cpp:336:8: note: use non-reference type 'std::pair<long, AtObj>' to keep the copy or type 'const std::pair<const long, AtObj> &' to prevent copying for (const std::pair<long, AtObj>& vc2 : m_VictoryConditions) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../../source/tools/atlas/AtlasUI/ScenarioEditor/Sections/Map/Map.cpp:328:37: warning: loop variable 'vc' has type 'const std::pair<long, AtObj> &' but is initialized with type 'std::pair<const long, AtObj>' resulting in a copy [-Wrange-loop-construct] for (const std::pair<long, AtObj>& vc : m_VictoryConditions) ^ ../../../source/tools/atlas/AtlasUI/ScenarioEditor/Sections/Map/Map.cpp:328:7: note: use non-reference type 'std::pair<long, AtObj>' to keep the copy or type 'const std::pair<const long, AtObj> &' to prevent copying for (const std::pair<long, AtObj>& vc : m_VictoryConditions) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../../source/tools/atlas/AtlasUI/ScenarioEditor/Sections/Map/Map.cpp:374:37: warning: loop variable 'vc' has type 'const std::pair<long, AtObj> &' but is initialized with type 'std::pair<const long, AtObj>' resulting in a copy [-Wrange-loop-construct] for (const std::pair<long, AtObj>& vc : m_VictoryConditions) ^ ../../../source/tools/atlas/AtlasUI/ScenarioEditor/Sections/Map/Map.cpp:374:7: note: use non-reference type 'std::pair<long, AtObj>' to keep the copy or type 'const std::pair<const long, AtObj> &' to prevent copying for (const std::pair<long, AtObj>& vc : m_VictoryConditions) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from ../../../source/tools/atlas/AtlasUI/ScenarioEditor/Sections/Map/Map.cpp:23: In file included from ../../../source/tools/atlas/AtlasObject/JSONSpiritInclude.h:32: In file included from ../../../source/third_party/jsonspirit/json_spirit_writer_template.h:13: ../../../source/third_party/jsonspirit/json_spirit_value.h:587:24: warning: 'static' function 'value_type_to_string' declared in header file should be declared 'static inline' [-Wunneeded-internal-declaration] static std::string value_type_to_string( const Value_type vtype ) ^ 8 warnings generated. clang: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument] clang: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument] clang: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument] clang: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument] clang: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument] clang: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument] clang: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument] clang: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument] clang: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument] clang: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument] clang: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument] clang: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument] clang: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument] clang: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument] clang: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument] clang: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument] clang: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument] clang: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument] clang: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument] clang: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument]