Просмотр исходного кода

Features: Add cxx_nonstatic_member_init.

Stephen Kelly 11 лет назад
Родитель
Сommit
bd2a025eb0

+ 5 - 0
Help/variable/CMAKE_CXX_KNOWN_FEATURES.rst

@@ -62,6 +62,11 @@ The features known to this version of CMake are:
 
 
   .. _N2927: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2009/n2927.pdf
   .. _N2927: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2009/n2927.pdf
 
 
+``cxx_nonstatic_member_init``
+  Non-static data member initialization, as defined in N2756.
+
+  .. _N2756: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2756.htm
+
 ``cxx_override``
 ``cxx_override``
   Override control ``override`` keyword, as defined in N2928_.
   Override control ``override`` keyword, as defined in N2928_.
 
 

+ 1 - 0
Modules/Compiler/GNU-CXX-FeatureTests.cmake

@@ -8,6 +8,7 @@ set(_cmake_feature_test_cxx_inheriting_constructors "${GNU48_CXX11}")
 set(GNU47_CXX11 "${_oldestSupported} && __cplusplus >= 201103L")
 set(GNU47_CXX11 "${_oldestSupported} && __cplusplus >= 201103L")
 set(_cmake_feature_test_cxx_delegating_constructors "${GNU47_CXX11}")
 set(_cmake_feature_test_cxx_delegating_constructors "${GNU47_CXX11}")
 set(_cmake_feature_test_cxx_final "${GNU47_CXX11}")
 set(_cmake_feature_test_cxx_final "${GNU47_CXX11}")
+set(_cmake_feature_test_cxx_nonstatic_member_init "${GNU47_CXX11}")
 set(_cmake_feature_test_cxx_override "${GNU47_CXX11}")
 set(_cmake_feature_test_cxx_override "${GNU47_CXX11}")
 # NOTE: C++11 was ratified in September 2011. GNU 4.7 is the first minor
 # NOTE: C++11 was ratified in September 2011. GNU 4.7 is the first minor
 # release following that (March 2012), and the first minor release to
 # release following that (March 2012), and the first minor release to

+ 1 - 0
Source/cmMakefile.cxx

@@ -52,6 +52,7 @@
   F(cxx_final) \
   F(cxx_final) \
   F(cxx_inheriting_constructors) \
   F(cxx_inheriting_constructors) \
   F(cxx_lambdas) \
   F(cxx_lambdas) \
+  F(cxx_nonstatic_member_init) \
   F(cxx_override) \
   F(cxx_override) \
   F(cxx_static_assert) \
   F(cxx_static_assert) \
   F(cxx_strong_enums) \
   F(cxx_strong_enums) \

+ 4 - 0
Tests/CompileFeatures/cxx_nonstatic_member_init.cpp

@@ -0,0 +1,4 @@
+class A
+{
+  int m_i = 42;
+};