mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-25 10:58:52 +00:00
Use explicit macro to declare that we want to use C++11
This replaces tests for __cplusplus >= 201103L, which are wrong with gcc 4.6 and earlier. Indeed these versions of gcc define __cplusplus = 1. Reference: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=1773
This commit is contained in:
parent
8b86af7298
commit
329eae5605
@ -159,6 +159,15 @@ AC_DEFUN([LYX_LIB_STDCXX],
|
||||
])
|
||||
|
||||
|
||||
dnl Usage: LYX_CXX_USE_CXX11(STD): pass option -std=STD to the C++ compiler
|
||||
dnl and define LYX_USE_CXX11.
|
||||
AC_DEFUN([LYX_CXX_USE_CXX11],
|
||||
[lyx_flags="$lyx_flags c++11-mode"
|
||||
AM_CXXFLAGS="$AM_CXXFLAGS -std=$1"
|
||||
AC_DEFINE([LYX_USE_CXX11], 1, [Define if LyX should use C++11 features])
|
||||
])
|
||||
|
||||
|
||||
dnl Usage: LYX_LIB_STDCXX_CXX11_ABI: set lyx_cv_lib_stdcxx_cxx11_abi to yes
|
||||
dnl if the STL library is GNU libstdc++ and the C++11 ABI is used.
|
||||
AC_DEFUN([LYX_LIB_STDCXX_CXX11_ABI],
|
||||
@ -329,17 +338,13 @@ if test x$GXX = xyes; then
|
||||
case $gxx_version in
|
||||
4.0*|4.1*|4.2*) AC_ERROR([There is no C++11 support in gcc 4.2 or older]);;
|
||||
4.3*|4.4*|4.5*|4.6*)
|
||||
lyx_flags="$lyx_flags c++11-mode"
|
||||
AM_CXXFLAGS="$AM_CXXFLAGS -std=gnu++0x";;
|
||||
LYX_CXX_USE_CXX11(gnu++0x);;
|
||||
clang)
|
||||
dnl presumably all clang version support c++11.
|
||||
lyx_flags="$lyx_flags c++11-mode"
|
||||
dnl the deprecated-register warning is very annoying with Qt4.x right now.
|
||||
AM_CXXFLAGS="$AM_CXXFLAGS -std=c++11 -Wno-deprecated-register";;
|
||||
LYX_CXX_USE_CXX11(c++11 -Wno-deprecated-register);;
|
||||
*)
|
||||
lyx_flags="$lyx_flags c++11-mode"
|
||||
AM_CXXFLAGS="$AM_CXXFLAGS -std=gnu++11"
|
||||
;;
|
||||
LYX_CXX_USE_CXX11(gnu++11);;
|
||||
esac
|
||||
if test x$CLANG = xno || test $lyx_cv_lib_stdcxx = yes; then
|
||||
dnl <regex> in gcc is unusable in versions less than 4.9.0
|
||||
|
@ -14,7 +14,7 @@
|
||||
|
||||
#include "support/functional.h"
|
||||
|
||||
#if __cplusplus >= 201103L
|
||||
#ifdef LYX_USE_CXX11
|
||||
|
||||
#define LYX_BIND_NS std
|
||||
|
||||
|
@ -12,7 +12,7 @@
|
||||
#ifndef LYX_FUNCTIONAL_H
|
||||
#define LYX_FUNCTIONAL_H
|
||||
|
||||
#if __cplusplus >= 201103L
|
||||
#ifdef LYX_USE_CXX11
|
||||
|
||||
#include <functional>
|
||||
#define LYX_FUNCTIONAL_NS std
|
||||
|
@ -84,7 +84,7 @@ void eliminate_duplicates(C & c)
|
||||
}
|
||||
|
||||
|
||||
#if __cplusplus >= 201103L
|
||||
#ifdef LYX_USE_CXX11
|
||||
using std::next;
|
||||
#else
|
||||
/// Replacement of std::next for older compilers
|
||||
@ -97,7 +97,7 @@ inline It next(It i, Diff n = 1)
|
||||
#endif
|
||||
|
||||
|
||||
#if __cplusplus >= 201103L
|
||||
#ifdef LYX_USE_CXX11
|
||||
using std::prev;
|
||||
#else
|
||||
/// Replacement of std::prev for older compilers
|
||||
|
@ -12,7 +12,7 @@
|
||||
#ifndef LYX_REGEXP_H
|
||||
#define LYX_REGEXP_H
|
||||
|
||||
#if __cplusplus >= 201103L && defined(LYX_USE_STD_REGEX)
|
||||
#if defined(LYX_USE_CXX11) && defined(LYX_USE_STD_REGEX)
|
||||
# include <regex>
|
||||
# ifdef _MSC_VER
|
||||
namespace lyx {
|
||||
|
@ -12,7 +12,7 @@
|
||||
#ifndef LYX_SHARED_PTR_H
|
||||
#define LYX_SHARED_PTR_H
|
||||
|
||||
#if __cplusplus >= 201103L
|
||||
#ifdef LYX_USE_CXX11
|
||||
|
||||
#include <memory>
|
||||
#define LYX_SHAREDPTR_NS std
|
||||
|
Loading…
Reference in New Issue
Block a user