]> git.lyx.org Git - lyx.git/commitdiff
Remove support for gcc 4.6
authorJean-Marc Lasgouttes <lasgouttes@lyx.org>
Wed, 12 Jun 2019 13:03:18 +0000 (15:03 +0200)
committerJean-Marc Lasgouttes <lasgouttes@lyx.org>
Wed, 12 Jun 2019 13:03:18 +0000 (15:03 +0200)
This was kept so long because of Ubuntu 12.04 LTS, but having a
not-really-c++11 compiler is not nice.

INSTALL
config/lyxinclude.m4
src/TexRow.h
src/support/Cache.h
src/support/Changer.h
src/support/RefChanger.h
src/support/unicode.cpp
src/support/unicode.h

diff --git a/INSTALL b/INSTALL
index d19159fb6e332431cf2478af04c0faf0d5d136e6..20c60a5f6a56676df6c5fc399cc3f51e4e587deb 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -47,9 +47,8 @@ You will also probably need GNU m4 (perhaps installed as gm4).
 Requirements
 ------------
 
-First of all, you will need a recent C++ compiler, where recent means
-that the compilers are close to C++11 standard conforming like gcc (at
-least 4.6) or clang.
+First of all, you will need a C++11 standard conforming compiler, like gcc (at
+least 4.7) or clang.
 
 LyX makes great use of the C++ Standard Template Library (STL).
 This means that gcc users will have to install the relevant libstdc++
index 8e1d2793cea063412af6811a757a62c3f178d974..b58faccc752c553a6d179b2c784be9e2c3928e47 100644 (file)
@@ -170,7 +170,7 @@ selects C++11 mode; gives an error when C++11 mode is not found.
 AC_DEFUN([LYX_CXX_CXX11_FLAGS],
 [AC_CACHE_CHECK([for at least C++11 mode], [lyx_cv_cxx11_flags],
  [lyx_cv_cxx11_flags=none
-  for flag in -std=c++14 -std=c++11 "" -std=c++0x -std=gnu++14 -std=gnu++11 -std=gnu++0x ; do
+  for flag in -std=c++14 -std=c++11 "" -std=gnu++14 -std=gnu++11 ; do
     save_CPPFLAGS=$CPPFLAGS
     CPPFLAGS="$AM_CPPFLAGS $CPPFLAGS"
     save_CXXFLAGS=$CXXFLAGS
@@ -413,8 +413,7 @@ if test x$GXX = xyes; then
       AM_CPPFLAGS="$AM_CPPFLAGS -Wall -Wextra"
   fi
   case $gxx_version in
-      2.*|3.*) AC_ERROR([gcc >= 4.6 is required]);;
-      4.0*|4.1*|4.2*|4.3*|4.4*|4.5*) AC_ERROR([gcc >= 4.6 is required]);;
+      2.*|3.*|4.@<:@0-6@:>@) AC_ERROR([gcc >= 4.7 is required]);;
   esac
   if test x$enable_stdlib_debug = xyes ; then
     dnl FIXME: for clang/libc++, one should define _LIBCPP_DEBUG2=0
index e85b141aeff70bc546b902190dc340da12e4a360..8edcd8eb16515146fb8230cc34dd548bcdf3f7d8 100644 (file)
@@ -119,7 +119,6 @@ public:
        ///
        TexRow();
 
-#if !(defined(__GNUC__) && (__GNUC__ == 4) && (__GNUC_MINOR__ == 6))
        /// Copy can be expensive and is not usually useful for TexRow.
        /// Force explicit copy, prefer move instead. This also prevents
        /// move()s from being converted into copy silently.
@@ -127,10 +126,6 @@ public:
        TexRow(TexRow && other) = default;
        TexRow & operator=(TexRow const & other) = default;
        TexRow & operator=(TexRow && other) = default;
-# else
-       //for gcc 4.6, nothing to do: it's enough to disable implicit copy during
-       // dev with more recent versions of gcc.
-#endif
 
        /// Clears structure.
        void reset();
@@ -241,7 +236,6 @@ struct TexString {
        docstring str;
        ///
        TexRow texrow;
-#if !(defined(__GNUC__) && (__GNUC__ == 4) && (__GNUC_MINOR__ == 6))
        /// Copy can be expensive and is not usually useful for TexString.
        /// Force explicit copy, prefer move instead. This also prevents
        /// move()s from being converted into copy silently.
@@ -249,10 +243,6 @@ struct TexString {
        TexString(TexString && other) = default;
        TexString & operator=(TexString const & other) = default;
        TexString & operator=(TexString && other) = default;
-# else
-       //for gcc 4.6, nothing to do: it's enough to disable implicit copy during
-       // dev with more recent versions of gcc.
-#endif
        /// Empty TexString
        TexString() = default;
        /// Texstring containing str and TexRow with enough lines which are empty
index f1738c7147a0bc669d1fafb61c58224ffbe24726..2b97f6e53a882b9db1958bd5bbcd8bca638b3220 100644 (file)
@@ -33,15 +33,11 @@ namespace lyx {
  */
 template <class Key, class Val>
 class Cache : private QCache<Key, Val> {
-#if !(defined(__GNUC__) && (__GNUC__ == 4) && (__GNUC_MINOR__ == 6))
        static_assert(std::is_copy_constructible<Val>::value,
                      "lyx::Cache only stores copyable objects!");
        static_assert(std::is_default_constructible<Val>::value,
                      "lyx::Cache only stores default-constructible objects!");
        using Q = QCache<Key, Val>;
-#else
-       typedef QCache<Key, Val> Q;
-#endif
 
 public:
        ///
index 2de7520341789cf9b860ed20b92aafe41694b477..212bcf1d85f8430ae1a5bd41ad7a125c0c18180c 100644 (file)
@@ -24,9 +24,7 @@ struct Revertible {
        virtual void keep() {}
 };
 
-//for gcc 4.6
-//using Changer = unique_ptr<Revertible>;
-typedef unique_ptr<Revertible> Changer;
+using Changer = unique_ptr<Revertible>;
 
 
 } // namespace lyx
index 65bb78106cd95ab19477dc64505aaf47b2b51206..c279e4764ad324a63b7ed900359509d5b10bf57b 100644 (file)
@@ -46,18 +46,7 @@ private:
 };
 
 
-//for gcc 4.6
-#if defined(__GNUC__) && (__GNUC__ == 4) && (__GNUC_MINOR__ == 6)
-template <typename X>
-struct RefChanger : unique_ptr<RevertibleRef<X>>
-{
-       RefChanger(unique_ptr<RevertibleRef<X>> p)
-               : unique_ptr<RevertibleRef<X>>(move(p))
-               {}
-};
-#else
 template <typename X> using RefChanger = unique_ptr<RevertibleRef<X>>;
-#endif
 
 
 /// Saves the value of \param ref in a movable object
index b5839827403ba688987636a2ebc523d5932a7902..ecc415b2f351d8571f71184956f1a66becacd547 100644 (file)
@@ -66,13 +66,6 @@ IconvProcessor::IconvProcessor(string tocode, string fromcode)
 {}
 
 
-// for gcc 4.6
-IconvProcessor::IconvProcessor(IconvProcessor && other)
-       : tocode_(move(other.tocode_)), fromcode_(move(other.fromcode_)),
-         h_(move(other.h_))
-{}
-
-
 bool IconvProcessor::init()
 {
        if (h_)
index 17b95dd29079c7ad69ac7efa110647dd0cdd17a1..6373e470ba0e446a192f08ea18f07f241b582437 100644 (file)
@@ -62,8 +62,8 @@ public:
                char * out_buffer, size_t max_out_size);
        /// target encoding
        std::string to() const { return tocode_; }
-       // required by g++ 4.6
-       IconvProcessor(IconvProcessor && other);
+       // required by g++ 4.7
+       IconvProcessor(IconvProcessor &&) = default;
 };
 
 /// Get the global IconvProcessor instance of the current thread for