]> git.lyx.org Git - features.git/commitdiff
Fix compilation with gcc 4.9
authorJean-Marc Lasgouttes <lasgouttes@lyx.org>
Wed, 16 Nov 2022 16:43:22 +0000 (17:43 +0100)
committerJean-Marc Lasgouttes <lasgouttes@lyx.org>
Wed, 16 Nov 2022 16:49:52 +0000 (17:49 +0100)
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.

src/MetricsInfo.cpp

index 92ed4a7eb3e273beb4ca44a888400e08c205be59..89196f3fb3be765fd000b1a18ace026a16054f47 100644 (file)
@@ -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
 }