From: Jean-Marc Lasgouttes Date: Wed, 16 Nov 2022 16:43:22 +0000 (+0100) Subject: Fix compilation with gcc 4.9 X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=94e7421a0a408bf60077bffe5d6f70142c5dad3f;p=features.git Fix compilation with gcc 4.9 It appears that gcc 4.9 does not implement the following part of C++11: https://cplusplus.github.io/CWG/issues/1148.html Therefore, we have to use a special case in C++11 mode that does an explicit std:move. With recent compilers (gcc >= 9), this leads in C++11 mode to a warning: MetricsInfo.cpp: In member function ‘lyx::Changer lyx::MetricsBase::changeFontSet(const string&)’: ../../master/src/MetricsInfo.cpp:83:13: warning: redundant move in return statement [-Wredundant-move] 83 | return move(rc); | ~~~~^~~~ MetricsInfo.cpp:83:13: note: remove ‘std::move’ call Partly reverts commit fff28c57. --- diff --git a/src/MetricsInfo.cpp b/src/MetricsInfo.cpp index 92ed4a7eb3..89196f3fb3 100644 --- a/src/MetricsInfo.cpp +++ b/src/MetricsInfo.cpp @@ -75,7 +75,13 @@ Changer MetricsBase::changeFontSet(string const & name) && ((isTextFont(oldname) && oldcolor != Color_foreground) || (isMathFont(oldname) && oldcolor != Color_math))) font.setColor(oldcolor); +#if __cplusplus >= 201402L return rc; +#else + /** In theory, this is not needed with C++11, and modern compilers + * will complain in C++11 mode, but gcc 4.9 requires this. */ + return std::move(rc); +#endif }