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.
&& ((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
}