mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-26 03:11:59 +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 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.
|
dnl if the STL library is GNU libstdc++ and the C++11 ABI is used.
|
||||||
AC_DEFUN([LYX_LIB_STDCXX_CXX11_ABI],
|
AC_DEFUN([LYX_LIB_STDCXX_CXX11_ABI],
|
||||||
@ -329,17 +338,13 @@ if test x$GXX = xyes; then
|
|||||||
case $gxx_version in
|
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.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*)
|
4.3*|4.4*|4.5*|4.6*)
|
||||||
lyx_flags="$lyx_flags c++11-mode"
|
LYX_CXX_USE_CXX11(gnu++0x);;
|
||||||
AM_CXXFLAGS="$AM_CXXFLAGS -std=gnu++0x";;
|
|
||||||
clang)
|
clang)
|
||||||
dnl presumably all clang version support c++11.
|
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.
|
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"
|
LYX_CXX_USE_CXX11(gnu++11);;
|
||||||
AM_CXXFLAGS="$AM_CXXFLAGS -std=gnu++11"
|
|
||||||
;;
|
|
||||||
esac
|
esac
|
||||||
if test x$CLANG = xno || test $lyx_cv_lib_stdcxx = yes; then
|
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
|
dnl <regex> in gcc is unusable in versions less than 4.9.0
|
||||||
|
@ -14,7 +14,7 @@
|
|||||||
|
|
||||||
#include "support/functional.h"
|
#include "support/functional.h"
|
||||||
|
|
||||||
#if __cplusplus >= 201103L
|
#ifdef LYX_USE_CXX11
|
||||||
|
|
||||||
#define LYX_BIND_NS std
|
#define LYX_BIND_NS std
|
||||||
|
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
#ifndef LYX_FUNCTIONAL_H
|
#ifndef LYX_FUNCTIONAL_H
|
||||||
#define LYX_FUNCTIONAL_H
|
#define LYX_FUNCTIONAL_H
|
||||||
|
|
||||||
#if __cplusplus >= 201103L
|
#ifdef LYX_USE_CXX11
|
||||||
|
|
||||||
#include <functional>
|
#include <functional>
|
||||||
#define LYX_FUNCTIONAL_NS std
|
#define LYX_FUNCTIONAL_NS std
|
||||||
|
@ -84,7 +84,7 @@ void eliminate_duplicates(C & c)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#if __cplusplus >= 201103L
|
#ifdef LYX_USE_CXX11
|
||||||
using std::next;
|
using std::next;
|
||||||
#else
|
#else
|
||||||
/// Replacement of std::next for older compilers
|
/// Replacement of std::next for older compilers
|
||||||
@ -97,7 +97,7 @@ inline It next(It i, Diff n = 1)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#if __cplusplus >= 201103L
|
#ifdef LYX_USE_CXX11
|
||||||
using std::prev;
|
using std::prev;
|
||||||
#else
|
#else
|
||||||
/// Replacement of std::prev for older compilers
|
/// Replacement of std::prev for older compilers
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
#ifndef LYX_REGEXP_H
|
#ifndef LYX_REGEXP_H
|
||||||
#define 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>
|
# include <regex>
|
||||||
# ifdef _MSC_VER
|
# ifdef _MSC_VER
|
||||||
namespace lyx {
|
namespace lyx {
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
#ifndef LYX_SHARED_PTR_H
|
#ifndef LYX_SHARED_PTR_H
|
||||||
#define LYX_SHARED_PTR_H
|
#define LYX_SHARED_PTR_H
|
||||||
|
|
||||||
#if __cplusplus >= 201103L
|
#ifdef LYX_USE_CXX11
|
||||||
|
|
||||||
#include <memory>
|
#include <memory>
|
||||||
#define LYX_SHAREDPTR_NS std
|
#define LYX_SHAREDPTR_NS std
|
||||||
|
Loading…
Reference in New Issue
Block a user