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.
This commit is contained in:
Jean-Marc Lasgouttes 2022-11-16 17:43:22 +01:00
parent 12bff77722
commit 94e7421a0a

View File

@ -75,7 +75,13 @@ Changer MetricsBase::changeFontSet(string const & name)
&& ((isTextFont(oldname) && oldcolor != Color_foreground) && ((isTextFont(oldname) && oldcolor != Color_foreground)
|| (isMathFont(oldname) && oldcolor != Color_math))) || (isMathFont(oldname) && oldcolor != Color_math)))
font.setColor(oldcolor); font.setColor(oldcolor);
#if __cplusplus >= 201402L
return rc; 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
} }