[Cmake-commits] CMake branch, next, updated. v3.0.0-rc3-1865-g773d91f

Stephen Kelly steveire at gmail.com
Thu Apr 3 18:33:02 EDT 2014


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "CMake".

The branch, next has been updated
       via  773d91fa63f2c2c35b4ae6afa972f86986611d82 (commit)
       via  e483d5d2b526d610a4ba0700fb35213cb2fa1e0a (commit)
       via  6d5b1c1bb0229a12116422f99860fc9999e9aad1 (commit)
       via  4ce9e3285e45b51e8a256fa627bd26b1afe3689a (commit)
       via  0b028c409dee1b57c1150bdf17ae2b5418a709e8 (commit)
       via  288cb99b9988a8d30082596ab657d0a0d1873475 (commit)
       via  4ab97ce3c09e63df76c75976101248dd474325cd (commit)
       via  53c73932f589ef20ce63ee5c9b4adeeadb35c5e2 (commit)
       via  87a05562070f4b710d559a707c811244f0dc4e71 (commit)
       via  4f0117c2218b68a5c71bb8e5a34a64ed9f27fcd3 (commit)
       via  a8e894e99d87d0cc656d08b6a5542d05002d9e7d (commit)
       via  d74ce43303d1f5aac3f8755dffad8cc57bd666c0 (commit)
       via  42f9ccdae0fcdfdd0928bc7397e5fde8293458c9 (commit)
       via  b9301bf0ed66b38a3125b5f96e0bafbfab5982ec (commit)
       via  fbb08fb67ba7e59c0f35002c0fcd95565b56c815 (commit)
       via  bc8f164de15772e8ba660806b928a3b01551497d (commit)
       via  71a46e27c211d4eda08dfff2d077f814f8c1cb66 (commit)
       via  f3243f1cc0fab2ce799804f80753d0eff53ce744 (commit)
       via  ef0360a9a0dbcc11aa7f78178fd804986f20f9f8 (commit)
       via  3784e268feb65e7bf85a0fc259da6c91a17ea182 (commit)
      from  43173acbb717c571a8c04edeb5f33a317ddc3184 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=773d91fa63f2c2c35b4ae6afa972f86986611d82
commit 773d91fa63f2c2c35b4ae6afa972f86986611d82
Merge: 43173ac e483d5d
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Thu Apr 3 18:33:00 2014 -0400
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Thu Apr 3 18:33:00 2014 -0400

    Merge topic 'cxx11-features' into next
    
    e483d5d2 Features: Add cxx_range_for.
    6d5b1c1b Features: Add cxx_nullptr.
    4ce9e328 Features: Add cxx_noexcept.
    0b028c40 Features: Add cxx_nonstatic_member_init.
    288cb99b Features: Add cxx_lambdas.
    4ab97ce3 Features: Add cxx_inheriting_constructors.
    53c73932 Features: Add cxx_explicit_conversions.
    87a05562 Features: Add cxx_deleted_functions.
    4f0117c2 Features: Add cxx_defaulted_functions.
    a8e894e9 Features: Add cxx_decltype.
    d74ce433 Features: Add cxx_strong_enums.
    42f9ccda Features: Add cxx_auto_type.
    b9301bf0 Features: Add cxx_auto_function.
    fbb08fb6 Features: Add cxx_override.
    bc8f164d Features: Add cxx_final.
    71a46e27 Features: Add cxx_static_assert.
    ...


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=e483d5d2b526d610a4ba0700fb35213cb2fa1e0a
commit e483d5d2b526d610a4ba0700fb35213cb2fa1e0a
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Thu Apr 3 19:40:06 2014 +0200
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Fri Apr 4 00:32:28 2014 +0200

    Features: Add cxx_range_for.

diff --git a/Help/variable/CMAKE_CXX_KNOWN_FEATURES.rst b/Help/variable/CMAKE_CXX_KNOWN_FEATURES.rst
index 11e4500..e0c7f19 100644
--- a/Help/variable/CMAKE_CXX_KNOWN_FEATURES.rst
+++ b/Help/variable/CMAKE_CXX_KNOWN_FEATURES.rst
@@ -101,3 +101,8 @@ The features known to this version of CMake are:
   Null pointer, as defined in N2431_.
 
 .. _N2431: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2431.pdf
+
+``cxx_range_for``
+  Range-based for, as defined in N2930_.
+
+.. _N2930: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2009/n2930.html
diff --git a/Modules/Compiler/GNU-CXX-FeatureTests.cmake b/Modules/Compiler/GNU-CXX-FeatureTests.cmake
index e682d54..d786771 100644
--- a/Modules/Compiler/GNU-CXX-FeatureTests.cmake
+++ b/Modules/Compiler/GNU-CXX-FeatureTests.cmake
@@ -11,6 +11,7 @@ set(_cmake_feature_test_cxx_noexcept "${GNU47_CXX11}")
 set(GNU46_CXX11 "${_oldestSupported} && __cplusplus >= 201103L")
 set(_cmake_feature_test_cxx_constexpr "${GNU46_CXX11}")
 set(_cmake_feature_test_cxx_nullptr "${GNU46_CXX11}")
+set(_cmake_feature_test_cxx_range_for "${GNU46_CXX11}")
 # TODO: Should be supported by GNU 4.5
 set(GNU45_CXX11 "${_oldestSupported} && __cplusplus >= 201103L")
 set(_cmake_feature_test_cxx_explicit_conversions "${GNU45_CXX11}")
diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx
index 81d58aa..fc6aef2 100644
--- a/Source/cmMakefile.cxx
+++ b/Source/cmMakefile.cxx
@@ -59,7 +59,8 @@
   F(cxx_lambdas) \
   F(cxx_nonstatic_member_init) \
   F(cxx_noexcept) \
-  F(cxx_nullptr)
+  F(cxx_nullptr) \
+  F(cxx_range_for)
 
 class cmMakefile::Internals
 {
diff --git a/Tests/CompileFeatures/cxx_range_for.cpp b/Tests/CompileFeatures/cxx_range_for.cpp
new file mode 100644
index 0000000..892109e
--- /dev/null
+++ b/Tests/CompileFeatures/cxx_range_for.cpp
@@ -0,0 +1,10 @@
+
+void someFunc()
+{
+  int accumulated = 0;
+  int numbers[] = { 1, 2, 5 };
+  for (int i : numbers)
+    {
+    accumulated += i;
+    }
+}

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=6d5b1c1bb0229a12116422f99860fc9999e9aad1
commit 6d5b1c1bb0229a12116422f99860fc9999e9aad1
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Thu Apr 3 19:34:47 2014 +0200
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Fri Apr 4 00:32:28 2014 +0200

    Features: Add cxx_nullptr.

diff --git a/Help/variable/CMAKE_CXX_KNOWN_FEATURES.rst b/Help/variable/CMAKE_CXX_KNOWN_FEATURES.rst
index aea709f..11e4500 100644
--- a/Help/variable/CMAKE_CXX_KNOWN_FEATURES.rst
+++ b/Help/variable/CMAKE_CXX_KNOWN_FEATURES.rst
@@ -96,3 +96,8 @@ The features known to this version of CMake are:
   Exception specifications, as defined in N3050_.
 
 .. _N3050: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3050.html
+
+``cxx_nullptr``
+  Null pointer, as defined in N2431_.
+
+.. _N2431: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2431.pdf
diff --git a/Modules/Compiler/GNU-CXX-FeatureTests.cmake b/Modules/Compiler/GNU-CXX-FeatureTests.cmake
index f315035..e682d54 100644
--- a/Modules/Compiler/GNU-CXX-FeatureTests.cmake
+++ b/Modules/Compiler/GNU-CXX-FeatureTests.cmake
@@ -10,6 +10,7 @@ set(_cmake_feature_test_cxx_noexcept "${GNU47_CXX11}")
 # TODO: Should be supported by GNU 4.6
 set(GNU46_CXX11 "${_oldestSupported} && __cplusplus >= 201103L")
 set(_cmake_feature_test_cxx_constexpr "${GNU46_CXX11}")
+set(_cmake_feature_test_cxx_nullptr "${GNU46_CXX11}")
 # TODO: Should be supported by GNU 4.5
 set(GNU45_CXX11 "${_oldestSupported} && __cplusplus >= 201103L")
 set(_cmake_feature_test_cxx_explicit_conversions "${GNU45_CXX11}")
diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx
index d5affdb..81d58aa 100644
--- a/Source/cmMakefile.cxx
+++ b/Source/cmMakefile.cxx
@@ -58,7 +58,8 @@
   F(cxx_inheriting_constructors) \
   F(cxx_lambdas) \
   F(cxx_nonstatic_member_init) \
-  F(cxx_noexcept)
+  F(cxx_noexcept) \
+  F(cxx_nullptr)
 
 class cmMakefile::Internals
 {
diff --git a/Tests/CompileFeatures/cxx_nullptr.cpp b/Tests/CompileFeatures/cxx_nullptr.cpp
new file mode 100644
index 0000000..96307df
--- /dev/null
+++ b/Tests/CompileFeatures/cxx_nullptr.cpp
@@ -0,0 +1,10 @@
+
+void someFunc(int*)
+{
+
+}
+
+void otherFunc()
+{
+  someFunc(nullptr);
+}

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=4ce9e3285e45b51e8a256fa627bd26b1afe3689a
commit 4ce9e3285e45b51e8a256fa627bd26b1afe3689a
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Thu Apr 3 19:32:06 2014 +0200
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Fri Apr 4 00:32:28 2014 +0200

    Features: Add cxx_noexcept.

diff --git a/Help/variable/CMAKE_CXX_KNOWN_FEATURES.rst b/Help/variable/CMAKE_CXX_KNOWN_FEATURES.rst
index 54e8f9a..aea709f 100644
--- a/Help/variable/CMAKE_CXX_KNOWN_FEATURES.rst
+++ b/Help/variable/CMAKE_CXX_KNOWN_FEATURES.rst
@@ -91,3 +91,8 @@ The features known to this version of CMake are:
   Non-static data member initialization, as defined in N2756.
 
 .. _N2756: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2756.htm
+
+``cxx_noexcept``
+  Exception specifications, as defined in N3050_.
+
+.. _N3050: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3050.html
diff --git a/Modules/Compiler/GNU-CXX-FeatureTests.cmake b/Modules/Compiler/GNU-CXX-FeatureTests.cmake
index 10e2ce3..f315035 100644
--- a/Modules/Compiler/GNU-CXX-FeatureTests.cmake
+++ b/Modules/Compiler/GNU-CXX-FeatureTests.cmake
@@ -6,6 +6,7 @@ set(_cmake_feature_test_cxx_delegating_constructors "${GNU47_CXX11}")
 set(_cmake_feature_test_cxx_final "${GNU47_CXX11}")
 set(_cmake_feature_test_cxx_override "${GNU47_CXX11}")
 set(_cmake_feature_test_cxx_nonstatic_member_init "${GNU47_CXX11}")
+set(_cmake_feature_test_cxx_noexcept "${GNU47_CXX11}")
 # TODO: Should be supported by GNU 4.6
 set(GNU46_CXX11 "${_oldestSupported} && __cplusplus >= 201103L")
 set(_cmake_feature_test_cxx_constexpr "${GNU46_CXX11}")
diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx
index 09694f7..d5affdb 100644
--- a/Source/cmMakefile.cxx
+++ b/Source/cmMakefile.cxx
@@ -57,7 +57,8 @@
   F(cxx_explicit_conversions) \
   F(cxx_inheriting_constructors) \
   F(cxx_lambdas) \
-  F(cxx_nonstatic_member_init)
+  F(cxx_nonstatic_member_init) \
+  F(cxx_noexcept)
 
 class cmMakefile::Internals
 {
diff --git a/Tests/CompileFeatures/cxx_noexcept.cpp b/Tests/CompileFeatures/cxx_noexcept.cpp
new file mode 100644
index 0000000..a3c05b8
--- /dev/null
+++ b/Tests/CompileFeatures/cxx_noexcept.cpp
@@ -0,0 +1,5 @@
+
+void someFunc() noexcept
+{
+
+}

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=0b028c409dee1b57c1150bdf17ae2b5418a709e8
commit 0b028c409dee1b57c1150bdf17ae2b5418a709e8
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Thu Apr 3 19:29:17 2014 +0200
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Fri Apr 4 00:32:28 2014 +0200

    Features: Add cxx_nonstatic_member_init.

diff --git a/Help/variable/CMAKE_CXX_KNOWN_FEATURES.rst b/Help/variable/CMAKE_CXX_KNOWN_FEATURES.rst
index 0dc6f3d..54e8f9a 100644
--- a/Help/variable/CMAKE_CXX_KNOWN_FEATURES.rst
+++ b/Help/variable/CMAKE_CXX_KNOWN_FEATURES.rst
@@ -86,3 +86,8 @@ The features known to this version of CMake are:
   Lambda functions, as defined in N2927_.
 
 .. _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
diff --git a/Modules/Compiler/GNU-CXX-FeatureTests.cmake b/Modules/Compiler/GNU-CXX-FeatureTests.cmake
index d3d7ae6..10e2ce3 100644
--- a/Modules/Compiler/GNU-CXX-FeatureTests.cmake
+++ b/Modules/Compiler/GNU-CXX-FeatureTests.cmake
@@ -5,6 +5,7 @@ set(GNU47_CXX11 "${_oldestSupported} && __cplusplus >= 201103L")
 set(_cmake_feature_test_cxx_delegating_constructors "${GNU47_CXX11}")
 set(_cmake_feature_test_cxx_final "${GNU47_CXX11}")
 set(_cmake_feature_test_cxx_override "${GNU47_CXX11}")
+set(_cmake_feature_test_cxx_nonstatic_member_init "${GNU47_CXX11}")
 # TODO: Should be supported by GNU 4.6
 set(GNU46_CXX11 "${_oldestSupported} && __cplusplus >= 201103L")
 set(_cmake_feature_test_cxx_constexpr "${GNU46_CXX11}")
diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx
index 3730d67..09694f7 100644
--- a/Source/cmMakefile.cxx
+++ b/Source/cmMakefile.cxx
@@ -56,7 +56,8 @@
   F(cxx_deleted_functions) \
   F(cxx_explicit_conversions) \
   F(cxx_inheriting_constructors) \
-  F(cxx_lambdas)
+  F(cxx_lambdas) \
+  F(cxx_nonstatic_member_init)
 
 class cmMakefile::Internals
 {
diff --git a/Tests/CompileFeatures/cxx_nonstatic_member_init.cpp b/Tests/CompileFeatures/cxx_nonstatic_member_init.cpp
new file mode 100644
index 0000000..6b7fa70
--- /dev/null
+++ b/Tests/CompileFeatures/cxx_nonstatic_member_init.cpp
@@ -0,0 +1,4 @@
+class A
+{
+  int m_i = 42;
+};

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=288cb99b9988a8d30082596ab657d0a0d1873475
commit 288cb99b9988a8d30082596ab657d0a0d1873475
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Thu Apr 3 19:23:40 2014 +0200
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Fri Apr 4 00:32:28 2014 +0200

    Features: Add cxx_lambdas.

diff --git a/Help/variable/CMAKE_CXX_KNOWN_FEATURES.rst b/Help/variable/CMAKE_CXX_KNOWN_FEATURES.rst
index bc84fea..0dc6f3d 100644
--- a/Help/variable/CMAKE_CXX_KNOWN_FEATURES.rst
+++ b/Help/variable/CMAKE_CXX_KNOWN_FEATURES.rst
@@ -81,3 +81,8 @@ The features known to this version of CMake are:
   Inheriting constructors, as defined in N2540_.
 
 .. _N2540: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2540.htm
+
+``cxx_lambdas``
+  Lambda functions, as defined in N2927_.
+
+.. _N2927: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2009/n2927.pdf
diff --git a/Modules/Compiler/GNU-CXX-FeatureTests.cmake b/Modules/Compiler/GNU-CXX-FeatureTests.cmake
index 8d95c54..d3d7ae6 100644
--- a/Modules/Compiler/GNU-CXX-FeatureTests.cmake
+++ b/Modules/Compiler/GNU-CXX-FeatureTests.cmake
@@ -12,6 +12,7 @@ set(_cmake_feature_test_cxx_constexpr "${GNU46_CXX11}")
 set(GNU45_CXX11 "${_oldestSupported} && __cplusplus >= 201103L")
 set(_cmake_feature_test_cxx_explicit_conversions "${GNU45_CXX11}")
 set(_cmake_feature_test_cxx_inheriting_constructors "${GNU45_CXX11}")
+set(_cmake_feature_test_cxx_lambdas "${GNU45_CXX11}")
 # TODO: Should be supported by GNU 4.4
 set(GNU44_CXX11 "${_oldestSupported} && __cplusplus >= 201103L")
 set(_cmake_feature_test_cxx_variadic_templates "${GNU44_CXX11}")
diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx
index f6ce75b..3730d67 100644
--- a/Source/cmMakefile.cxx
+++ b/Source/cmMakefile.cxx
@@ -55,7 +55,8 @@
   F(cxx_defaulted_functions) \
   F(cxx_deleted_functions) \
   F(cxx_explicit_conversions) \
-  F(cxx_inheriting_constructors)
+  F(cxx_inheriting_constructors) \
+  F(cxx_lambdas)
 
 class cmMakefile::Internals
 {
diff --git a/Tests/CompileFeatures/cxx_lambdas.cpp b/Tests/CompileFeatures/cxx_lambdas.cpp
new file mode 100644
index 0000000..48431ba
--- /dev/null
+++ b/Tests/CompileFeatures/cxx_lambdas.cpp
@@ -0,0 +1,5 @@
+
+void someFunc()
+{
+  [](){};
+}

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=4ab97ce3c09e63df76c75976101248dd474325cd
commit 4ab97ce3c09e63df76c75976101248dd474325cd
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Thu Apr 3 19:18:01 2014 +0200
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Fri Apr 4 00:32:28 2014 +0200

    Features: Add cxx_inheriting_constructors.

diff --git a/Help/variable/CMAKE_CXX_KNOWN_FEATURES.rst b/Help/variable/CMAKE_CXX_KNOWN_FEATURES.rst
index 9252388..bc84fea 100644
--- a/Help/variable/CMAKE_CXX_KNOWN_FEATURES.rst
+++ b/Help/variable/CMAKE_CXX_KNOWN_FEATURES.rst
@@ -76,3 +76,8 @@ The features known to this version of CMake are:
   Explicit conversion operators, as defined in N2437_.
 
 .. _N2437: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2437.pdf
+
+``cxx_inheriting_constructors``
+  Inheriting constructors, as defined in N2540_.
+
+.. _N2540: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2540.htm
diff --git a/Modules/Compiler/GNU-CXX-FeatureTests.cmake b/Modules/Compiler/GNU-CXX-FeatureTests.cmake
index 48d99e2..8d95c54 100644
--- a/Modules/Compiler/GNU-CXX-FeatureTests.cmake
+++ b/Modules/Compiler/GNU-CXX-FeatureTests.cmake
@@ -11,6 +11,7 @@ set(_cmake_feature_test_cxx_constexpr "${GNU46_CXX11}")
 # TODO: Should be supported by GNU 4.5
 set(GNU45_CXX11 "${_oldestSupported} && __cplusplus >= 201103L")
 set(_cmake_feature_test_cxx_explicit_conversions "${GNU45_CXX11}")
+set(_cmake_feature_test_cxx_inheriting_constructors "${GNU45_CXX11}")
 # TODO: Should be supported by GNU 4.4
 set(GNU44_CXX11 "${_oldestSupported} && __cplusplus >= 201103L")
 set(_cmake_feature_test_cxx_variadic_templates "${GNU44_CXX11}")
diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx
index 1b646af..f6ce75b 100644
--- a/Source/cmMakefile.cxx
+++ b/Source/cmMakefile.cxx
@@ -54,7 +54,8 @@
   F(cxx_decltype) \
   F(cxx_defaulted_functions) \
   F(cxx_deleted_functions) \
-  F(cxx_explicit_conversions)
+  F(cxx_explicit_conversions) \
+  F(cxx_inheriting_constructors)
 
 class cmMakefile::Internals
 {
diff --git a/Tests/CompileFeatures/cxx_inheriting_constructors.cpp b/Tests/CompileFeatures/cxx_inheriting_constructors.cpp
new file mode 100644
index 0000000..a83b624
--- /dev/null
+++ b/Tests/CompileFeatures/cxx_inheriting_constructors.cpp
@@ -0,0 +1,18 @@
+
+struct A
+{
+  int m_i;
+
+  A(int i) : m_i(i) {}
+};
+
+struct B : public A
+{
+  using A::A;
+};
+
+void someFunc()
+{
+  int i;
+  B b(i);
+}

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=53c73932f589ef20ce63ee5c9b4adeeadb35c5e2
commit 53c73932f589ef20ce63ee5c9b4adeeadb35c5e2
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Thu Apr 3 19:12:26 2014 +0200
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Fri Apr 4 00:32:27 2014 +0200

    Features: Add cxx_explicit_conversions.

diff --git a/Help/variable/CMAKE_CXX_KNOWN_FEATURES.rst b/Help/variable/CMAKE_CXX_KNOWN_FEATURES.rst
index 0a4843a..9252388 100644
--- a/Help/variable/CMAKE_CXX_KNOWN_FEATURES.rst
+++ b/Help/variable/CMAKE_CXX_KNOWN_FEATURES.rst
@@ -71,3 +71,8 @@ The features known to this version of CMake are:
   Deleted functions, as defined in  N2346_.
 
 .. _N2346: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2346.htm
+
+``cxx_explicit_conversions``
+  Explicit conversion operators, as defined in N2437_.
+
+.. _N2437: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2437.pdf
diff --git a/Modules/Compiler/GNU-CXX-FeatureTests.cmake b/Modules/Compiler/GNU-CXX-FeatureTests.cmake
index c49db84..48d99e2 100644
--- a/Modules/Compiler/GNU-CXX-FeatureTests.cmake
+++ b/Modules/Compiler/GNU-CXX-FeatureTests.cmake
@@ -8,6 +8,9 @@ set(_cmake_feature_test_cxx_override "${GNU47_CXX11}")
 # TODO: Should be supported by GNU 4.6
 set(GNU46_CXX11 "${_oldestSupported} && __cplusplus >= 201103L")
 set(_cmake_feature_test_cxx_constexpr "${GNU46_CXX11}")
+# TODO: Should be supported by GNU 4.5
+set(GNU45_CXX11 "${_oldestSupported} && __cplusplus >= 201103L")
+set(_cmake_feature_test_cxx_explicit_conversions "${GNU45_CXX11}")
 # TODO: Should be supported by GNU 4.4
 set(GNU44_CXX11 "${_oldestSupported} && __cplusplus >= 201103L")
 set(_cmake_feature_test_cxx_variadic_templates "${GNU44_CXX11}")
diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx
index f7c6c94..1b646af 100644
--- a/Source/cmMakefile.cxx
+++ b/Source/cmMakefile.cxx
@@ -53,7 +53,8 @@
   F(cxx_strong_enums) \
   F(cxx_decltype) \
   F(cxx_defaulted_functions) \
-  F(cxx_deleted_functions)
+  F(cxx_deleted_functions) \
+  F(cxx_explicit_conversions)
 
 class cmMakefile::Internals
 {
diff --git a/Tests/CompileFeatures/cxx_explicit_conversions.cpp b/Tests/CompileFeatures/cxx_explicit_conversions.cpp
new file mode 100644
index 0000000..0decdcd
--- /dev/null
+++ b/Tests/CompileFeatures/cxx_explicit_conversions.cpp
@@ -0,0 +1,10 @@
+
+class A
+{
+  int m_i;
+public:
+  explicit operator bool()
+  {
+    return m_i != 0;
+  }
+};

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=87a05562070f4b710d559a707c811244f0dc4e71
commit 87a05562070f4b710d559a707c811244f0dc4e71
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Thu Apr 3 00:15:53 2014 +0200
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Fri Apr 4 00:32:26 2014 +0200

    Features: Add cxx_deleted_functions.

diff --git a/Help/variable/CMAKE_CXX_KNOWN_FEATURES.rst b/Help/variable/CMAKE_CXX_KNOWN_FEATURES.rst
index b883c12..0a4843a 100644
--- a/Help/variable/CMAKE_CXX_KNOWN_FEATURES.rst
+++ b/Help/variable/CMAKE_CXX_KNOWN_FEATURES.rst
@@ -66,3 +66,8 @@ The features known to this version of CMake are:
   Defaulted functions, as defined in N2346_.
 
 .. _N2346: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2346.htm
+
+``cxx_deleted_functions``
+  Deleted functions, as defined in  N2346_.
+
+.. _N2346: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2346.htm
diff --git a/Modules/Compiler/GNU-CXX-FeatureTests.cmake b/Modules/Compiler/GNU-CXX-FeatureTests.cmake
index 8b0ebb0..c49db84 100644
--- a/Modules/Compiler/GNU-CXX-FeatureTests.cmake
+++ b/Modules/Compiler/GNU-CXX-FeatureTests.cmake
@@ -15,6 +15,7 @@ set(_cmake_feature_test_cxx_auto_function "${GNU44_CXX11}")
 set(_cmake_feature_test_cxx_auto_type "${GNU44_CXX11}")
 set(_cmake_feature_test_cxx_strong_enums "${GNU44_CXX11}")
 set(_cmake_feature_test_cxx_defaulted_functions "${GNU44_CXX11}")
+set(_cmake_feature_test_cxx_deleted_functions "${GNU44_CXX11}")
 # TODO: Should be supported by GNU 4.3
 set(GNU43_CXX11 "${_oldestSupported} && __cplusplus >= 201103L")
 set(_cmake_feature_test_cxx_static_assert "${GNU43_CXX11}")
diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx
index 511823f..f7c6c94 100644
--- a/Source/cmMakefile.cxx
+++ b/Source/cmMakefile.cxx
@@ -52,7 +52,8 @@
   F(cxx_auto_type) \
   F(cxx_strong_enums) \
   F(cxx_decltype) \
-  F(cxx_defaulted_functions)
+  F(cxx_defaulted_functions) \
+  F(cxx_deleted_functions)
 
 class cmMakefile::Internals
 {
diff --git a/Tests/CompileFeatures/cxx_deleted_functions.cpp b/Tests/CompileFeatures/cxx_deleted_functions.cpp
new file mode 100644
index 0000000..4ecb1e9
--- /dev/null
+++ b/Tests/CompileFeatures/cxx_deleted_functions.cpp
@@ -0,0 +1,6 @@
+
+struct A
+{
+  A(const A&) = delete;
+  A& operator=(const A&) = delete;
+};

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=4f0117c2218b68a5c71bb8e5a34a64ed9f27fcd3
commit 4f0117c2218b68a5c71bb8e5a34a64ed9f27fcd3
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Thu Apr 3 00:12:02 2014 +0200
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Fri Apr 4 00:32:13 2014 +0200

    Features: Add cxx_defaulted_functions.

diff --git a/Help/variable/CMAKE_CXX_KNOWN_FEATURES.rst b/Help/variable/CMAKE_CXX_KNOWN_FEATURES.rst
index 6d1f6d9..b883c12 100644
--- a/Help/variable/CMAKE_CXX_KNOWN_FEATURES.rst
+++ b/Help/variable/CMAKE_CXX_KNOWN_FEATURES.rst
@@ -61,3 +61,8 @@ The features known to this version of CMake are:
   Decltype, as defined in N3276_.
 
 .. _N3276: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3276.pdf
+
+``cxx_defaulted_functions``
+  Defaulted functions, as defined in N2346_.
+
+.. _N2346: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2346.htm
diff --git a/Modules/Compiler/GNU-CXX-FeatureTests.cmake b/Modules/Compiler/GNU-CXX-FeatureTests.cmake
index eb9cae6..8b0ebb0 100644
--- a/Modules/Compiler/GNU-CXX-FeatureTests.cmake
+++ b/Modules/Compiler/GNU-CXX-FeatureTests.cmake
@@ -14,6 +14,7 @@ set(_cmake_feature_test_cxx_variadic_templates "${GNU44_CXX11}")
 set(_cmake_feature_test_cxx_auto_function "${GNU44_CXX11}")
 set(_cmake_feature_test_cxx_auto_type "${GNU44_CXX11}")
 set(_cmake_feature_test_cxx_strong_enums "${GNU44_CXX11}")
+set(_cmake_feature_test_cxx_defaulted_functions "${GNU44_CXX11}")
 # TODO: Should be supported by GNU 4.3
 set(GNU43_CXX11 "${_oldestSupported} && __cplusplus >= 201103L")
 set(_cmake_feature_test_cxx_static_assert "${GNU43_CXX11}")
diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx
index 59d5bf5..511823f 100644
--- a/Source/cmMakefile.cxx
+++ b/Source/cmMakefile.cxx
@@ -51,7 +51,8 @@
   F(cxx_auto_function) \
   F(cxx_auto_type) \
   F(cxx_strong_enums) \
-  F(cxx_decltype)
+  F(cxx_decltype) \
+  F(cxx_defaulted_functions)
 
 class cmMakefile::Internals
 {
diff --git a/Tests/CompileFeatures/cxx_defaulted_functions.cpp b/Tests/CompileFeatures/cxx_defaulted_functions.cpp
new file mode 100644
index 0000000..b679a92
--- /dev/null
+++ b/Tests/CompileFeatures/cxx_defaulted_functions.cpp
@@ -0,0 +1,9 @@
+
+struct A {
+  A() = default;
+};
+
+void someFunc()
+{
+  A a;
+}

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=a8e894e99d87d0cc656d08b6a5542d05002d9e7d
commit a8e894e99d87d0cc656d08b6a5542d05002d9e7d
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Thu Apr 3 00:08:49 2014 +0200
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Fri Apr 4 00:30:26 2014 +0200

    Features: Add cxx_decltype.

diff --git a/Help/variable/CMAKE_CXX_KNOWN_FEATURES.rst b/Help/variable/CMAKE_CXX_KNOWN_FEATURES.rst
index 7f31bdb..6d1f6d9 100644
--- a/Help/variable/CMAKE_CXX_KNOWN_FEATURES.rst
+++ b/Help/variable/CMAKE_CXX_KNOWN_FEATURES.rst
@@ -56,3 +56,8 @@ The features known to this version of CMake are:
   Strongly typed enums, as defined in N2347_.
 
 .. _N2347: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2347.pdf
+
+``cxx_decltype``
+  Decltype, as defined in N3276_.
+
+.. _N3276: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3276.pdf
diff --git a/Modules/Compiler/GNU-CXX-FeatureTests.cmake b/Modules/Compiler/GNU-CXX-FeatureTests.cmake
index 61e02a9..eb9cae6 100644
--- a/Modules/Compiler/GNU-CXX-FeatureTests.cmake
+++ b/Modules/Compiler/GNU-CXX-FeatureTests.cmake
@@ -17,4 +17,5 @@ set(_cmake_feature_test_cxx_strong_enums "${GNU44_CXX11}")
 # TODO: Should be supported by GNU 4.3
 set(GNU43_CXX11 "${_oldestSupported} && __cplusplus >= 201103L")
 set(_cmake_feature_test_cxx_static_assert "${GNU43_CXX11}")
+set(_cmake_feature_test_cxx_decltype "${GNU43_CXX11}")
 set(_oldestSupported)
diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx
index 51425c1..59d5bf5 100644
--- a/Source/cmMakefile.cxx
+++ b/Source/cmMakefile.cxx
@@ -50,7 +50,8 @@
   F(cxx_override) \
   F(cxx_auto_function) \
   F(cxx_auto_type) \
-  F(cxx_strong_enums)
+  F(cxx_strong_enums) \
+  F(cxx_decltype)
 
 class cmMakefile::Internals
 {
diff --git a/Tests/CompileFeatures/cxx_decltype.cpp b/Tests/CompileFeatures/cxx_decltype.cpp
new file mode 100644
index 0000000..24ec51e
--- /dev/null
+++ b/Tests/CompileFeatures/cxx_decltype.cpp
@@ -0,0 +1,7 @@
+
+int someFunc()
+{
+  int i = 0;
+  decltype(i) other = 0;
+  return other;
+}

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=d74ce43303d1f5aac3f8755dffad8cc57bd666c0
commit d74ce43303d1f5aac3f8755dffad8cc57bd666c0
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Thu Apr 3 00:02:54 2014 +0200
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Fri Apr 4 00:30:19 2014 +0200

    Features: Add cxx_strong_enums.

diff --git a/Help/variable/CMAKE_CXX_KNOWN_FEATURES.rst b/Help/variable/CMAKE_CXX_KNOWN_FEATURES.rst
index a13fb2a..7f31bdb 100644
--- a/Help/variable/CMAKE_CXX_KNOWN_FEATURES.rst
+++ b/Help/variable/CMAKE_CXX_KNOWN_FEATURES.rst
@@ -51,3 +51,8 @@ The features known to this version of CMake are:
   Automatic type deduction, as defined in N1984_.
 
 .. _N1984: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1984.pdf
+
+``cxx_strong_enums``
+  Strongly typed enums, as defined in N2347_.
+
+.. _N2347: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2347.pdf
diff --git a/Modules/Compiler/GNU-CXX-FeatureTests.cmake b/Modules/Compiler/GNU-CXX-FeatureTests.cmake
index 3e2a71f..61e02a9 100644
--- a/Modules/Compiler/GNU-CXX-FeatureTests.cmake
+++ b/Modules/Compiler/GNU-CXX-FeatureTests.cmake
@@ -13,6 +13,7 @@ set(GNU44_CXX11 "${_oldestSupported} && __cplusplus >= 201103L")
 set(_cmake_feature_test_cxx_variadic_templates "${GNU44_CXX11}")
 set(_cmake_feature_test_cxx_auto_function "${GNU44_CXX11}")
 set(_cmake_feature_test_cxx_auto_type "${GNU44_CXX11}")
+set(_cmake_feature_test_cxx_strong_enums "${GNU44_CXX11}")
 # TODO: Should be supported by GNU 4.3
 set(GNU43_CXX11 "${_oldestSupported} && __cplusplus >= 201103L")
 set(_cmake_feature_test_cxx_static_assert "${GNU43_CXX11}")
diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx
index 1eaea2e..51425c1 100644
--- a/Source/cmMakefile.cxx
+++ b/Source/cmMakefile.cxx
@@ -49,7 +49,8 @@
   F(cxx_final) \
   F(cxx_override) \
   F(cxx_auto_function) \
-  F(cxx_auto_type)
+  F(cxx_auto_type) \
+  F(cxx_strong_enums)
 
 class cmMakefile::Internals
 {
diff --git a/Tests/CompileFeatures/cxx_strong_enums.cpp b/Tests/CompileFeatures/cxx_strong_enums.cpp
new file mode 100644
index 0000000..6262456
--- /dev/null
+++ b/Tests/CompileFeatures/cxx_strong_enums.cpp
@@ -0,0 +1,7 @@
+
+enum class Colors
+{
+  RedColor,
+  GreenColor,
+  BlueColor
+};

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=42f9ccdae0fcdfdd0928bc7397e5fde8293458c9
commit 42f9ccdae0fcdfdd0928bc7397e5fde8293458c9
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Wed Apr 2 23:40:40 2014 +0200
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Fri Apr 4 00:30:12 2014 +0200

    Features: Add cxx_auto_type.

diff --git a/Help/variable/CMAKE_CXX_KNOWN_FEATURES.rst b/Help/variable/CMAKE_CXX_KNOWN_FEATURES.rst
index 052b50a..a13fb2a 100644
--- a/Help/variable/CMAKE_CXX_KNOWN_FEATURES.rst
+++ b/Help/variable/CMAKE_CXX_KNOWN_FEATURES.rst
@@ -46,3 +46,8 @@ The features known to this version of CMake are:
   Automatic function return type, as defined in N2541_.
 
 .. _N2541: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2541.htm
+
+``cxx_auto_type``
+  Automatic type deduction, as defined in N1984_.
+
+.. _N1984: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1984.pdf
diff --git a/Modules/Compiler/GNU-CXX-FeatureTests.cmake b/Modules/Compiler/GNU-CXX-FeatureTests.cmake
index ec36062..3e2a71f 100644
--- a/Modules/Compiler/GNU-CXX-FeatureTests.cmake
+++ b/Modules/Compiler/GNU-CXX-FeatureTests.cmake
@@ -12,6 +12,7 @@ set(_cmake_feature_test_cxx_constexpr "${GNU46_CXX11}")
 set(GNU44_CXX11 "${_oldestSupported} && __cplusplus >= 201103L")
 set(_cmake_feature_test_cxx_variadic_templates "${GNU44_CXX11}")
 set(_cmake_feature_test_cxx_auto_function "${GNU44_CXX11}")
+set(_cmake_feature_test_cxx_auto_type "${GNU44_CXX11}")
 # TODO: Should be supported by GNU 4.3
 set(GNU43_CXX11 "${_oldestSupported} && __cplusplus >= 201103L")
 set(_cmake_feature_test_cxx_static_assert "${GNU43_CXX11}")
diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx
index 8a4a541..1eaea2e 100644
--- a/Source/cmMakefile.cxx
+++ b/Source/cmMakefile.cxx
@@ -48,7 +48,8 @@
   F(cxx_static_assert) \
   F(cxx_final) \
   F(cxx_override) \
-  F(cxx_auto_function)
+  F(cxx_auto_function) \
+  F(cxx_auto_type)
 
 class cmMakefile::Internals
 {
diff --git a/Tests/CompileFeatures/cxx_auto_type.cpp b/Tests/CompileFeatures/cxx_auto_type.cpp
new file mode 100644
index 0000000..7dbf04f
--- /dev/null
+++ b/Tests/CompileFeatures/cxx_auto_type.cpp
@@ -0,0 +1,5 @@
+
+void someFunc()
+{
+  auto x = 3.14;
+}

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=b9301bf0ed66b38a3125b5f96e0bafbfab5982ec
commit b9301bf0ed66b38a3125b5f96e0bafbfab5982ec
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Fri Apr 4 00:02:14 2014 +0200
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Fri Apr 4 00:30:05 2014 +0200

    Features: Add cxx_auto_function.

diff --git a/Help/variable/CMAKE_CXX_KNOWN_FEATURES.rst b/Help/variable/CMAKE_CXX_KNOWN_FEATURES.rst
index d7c1d52..052b50a 100644
--- a/Help/variable/CMAKE_CXX_KNOWN_FEATURES.rst
+++ b/Help/variable/CMAKE_CXX_KNOWN_FEATURES.rst
@@ -41,3 +41,8 @@ The features known to this version of CMake are:
   Override control ``override`` keyword, as defined in N2928_.
 
 .. _N2928: http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2009/n2928.htm
+
+``cxx_auto_function``
+  Automatic function return type, as defined in N2541_.
+
+.. _N2541: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2541.htm
diff --git a/Modules/Compiler/GNU-CXX-FeatureTests.cmake b/Modules/Compiler/GNU-CXX-FeatureTests.cmake
index 1766f3d..ec36062 100644
--- a/Modules/Compiler/GNU-CXX-FeatureTests.cmake
+++ b/Modules/Compiler/GNU-CXX-FeatureTests.cmake
@@ -11,6 +11,7 @@ set(_cmake_feature_test_cxx_constexpr "${GNU46_CXX11}")
 # TODO: Should be supported by GNU 4.4
 set(GNU44_CXX11 "${_oldestSupported} && __cplusplus >= 201103L")
 set(_cmake_feature_test_cxx_variadic_templates "${GNU44_CXX11}")
+set(_cmake_feature_test_cxx_auto_function "${GNU44_CXX11}")
 # TODO: Should be supported by GNU 4.3
 set(GNU43_CXX11 "${_oldestSupported} && __cplusplus >= 201103L")
 set(_cmake_feature_test_cxx_static_assert "${GNU43_CXX11}")
diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx
index 4a81d19..8a4a541 100644
--- a/Source/cmMakefile.cxx
+++ b/Source/cmMakefile.cxx
@@ -47,7 +47,8 @@
   F(cxx_constexpr) \
   F(cxx_static_assert) \
   F(cxx_final) \
-  F(cxx_override)
+  F(cxx_override) \
+  F(cxx_auto_function)
 
 class cmMakefile::Internals
 {
diff --git a/Tests/CompileFeatures/cxx_auto_function.cpp b/Tests/CompileFeatures/cxx_auto_function.cpp
new file mode 100644
index 0000000..01a76cb
--- /dev/null
+++ b/Tests/CompileFeatures/cxx_auto_function.cpp
@@ -0,0 +1,5 @@
+
+auto someFunc() -> int
+{
+  return 42;
+}

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=fbb08fb67ba7e59c0f35002c0fcd95565b56c815
commit fbb08fb67ba7e59c0f35002c0fcd95565b56c815
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Wed Mar 19 13:32:59 2014 +0100
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Fri Apr 4 00:29:58 2014 +0200

    Features: Add cxx_override.

diff --git a/Help/variable/CMAKE_CXX_KNOWN_FEATURES.rst b/Help/variable/CMAKE_CXX_KNOWN_FEATURES.rst
index 1681da5..d7c1d52 100644
--- a/Help/variable/CMAKE_CXX_KNOWN_FEATURES.rst
+++ b/Help/variable/CMAKE_CXX_KNOWN_FEATURES.rst
@@ -36,3 +36,8 @@ The features known to this version of CMake are:
   Override control ``final`` keyword, as defined in N2928_.
 
 .. _N2928: http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2009/n2928.htm
+
+``cxx_override``
+  Override control ``override`` keyword, as defined in N2928_.
+
+.. _N2928: http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2009/n2928.htm
diff --git a/Modules/Compiler/GNU-CXX-FeatureTests.cmake b/Modules/Compiler/GNU-CXX-FeatureTests.cmake
index 3fe607a..1766f3d 100644
--- a/Modules/Compiler/GNU-CXX-FeatureTests.cmake
+++ b/Modules/Compiler/GNU-CXX-FeatureTests.cmake
@@ -4,6 +4,7 @@ set(_oldestSupported "(__GNUC__ * 100 + __GNUC_MINOR__) >= 408")
 set(GNU47_CXX11 "${_oldestSupported} && __cplusplus >= 201103L")
 set(_cmake_feature_test_cxx_delegating_constructors "${GNU47_CXX11}")
 set(_cmake_feature_test_cxx_final "${GNU47_CXX11}")
+set(_cmake_feature_test_cxx_override "${GNU47_CXX11}")
 # TODO: Should be supported by GNU 4.6
 set(GNU46_CXX11 "${_oldestSupported} && __cplusplus >= 201103L")
 set(_cmake_feature_test_cxx_constexpr "${GNU46_CXX11}")
diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx
index 120b292..4a81d19 100644
--- a/Source/cmMakefile.cxx
+++ b/Source/cmMakefile.cxx
@@ -46,7 +46,8 @@
   F(cxx_variadic_templates) \
   F(cxx_constexpr) \
   F(cxx_static_assert) \
-  F(cxx_final)
+  F(cxx_final) \
+  F(cxx_override)
 
 class cmMakefile::Internals
 {
diff --git a/Tests/CompileFeatures/cxx_override.cpp b/Tests/CompileFeatures/cxx_override.cpp
new file mode 100644
index 0000000..55bec13
--- /dev/null
+++ b/Tests/CompileFeatures/cxx_override.cpp
@@ -0,0 +1,7 @@
+
+struct A {
+  virtual void doNothing() {}
+};
+struct B : A {
+  void doNothing() override {}
+};

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=bc8f164de15772e8ba660806b928a3b01551497d
commit bc8f164de15772e8ba660806b928a3b01551497d
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Tue Mar 18 23:42:05 2014 +0100
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Fri Apr 4 00:29:50 2014 +0200

    Features: Add cxx_final.

diff --git a/Help/variable/CMAKE_CXX_KNOWN_FEATURES.rst b/Help/variable/CMAKE_CXX_KNOWN_FEATURES.rst
index 77ae685..1681da5 100644
--- a/Help/variable/CMAKE_CXX_KNOWN_FEATURES.rst
+++ b/Help/variable/CMAKE_CXX_KNOWN_FEATURES.rst
@@ -31,3 +31,8 @@ The features known to this version of CMake are:
   Static assert, as defined in N1720_.
 
 .. _N1720: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1720.html
+
+``cxx_final``
+  Override control ``final`` keyword, as defined in N2928_.
+
+.. _N2928: http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2009/n2928.htm
diff --git a/Modules/Compiler/GNU-CXX-FeatureTests.cmake b/Modules/Compiler/GNU-CXX-FeatureTests.cmake
index 6e69804..3fe607a 100644
--- a/Modules/Compiler/GNU-CXX-FeatureTests.cmake
+++ b/Modules/Compiler/GNU-CXX-FeatureTests.cmake
@@ -3,6 +3,7 @@ set(_oldestSupported "(__GNUC__ * 100 + __GNUC_MINOR__) >= 408")
 # TODO: Should be supported by GNU 4.7
 set(GNU47_CXX11 "${_oldestSupported} && __cplusplus >= 201103L")
 set(_cmake_feature_test_cxx_delegating_constructors "${GNU47_CXX11}")
+set(_cmake_feature_test_cxx_final "${GNU47_CXX11}")
 # TODO: Should be supported by GNU 4.6
 set(GNU46_CXX11 "${_oldestSupported} && __cplusplus >= 201103L")
 set(_cmake_feature_test_cxx_constexpr "${GNU46_CXX11}")
diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx
index c007acc..120b292 100644
--- a/Source/cmMakefile.cxx
+++ b/Source/cmMakefile.cxx
@@ -45,7 +45,8 @@
   F(cxx_delegating_constructors) \
   F(cxx_variadic_templates) \
   F(cxx_constexpr) \
-  F(cxx_static_assert)
+  F(cxx_static_assert) \
+  F(cxx_final)
 
 class cmMakefile::Internals
 {
diff --git a/Tests/CompileFeatures/cxx_final.cpp b/Tests/CompileFeatures/cxx_final.cpp
new file mode 100644
index 0000000..598cb94
--- /dev/null
+++ b/Tests/CompileFeatures/cxx_final.cpp
@@ -0,0 +1,2 @@
+
+struct A final {};

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=71a46e27c211d4eda08dfff2d077f814f8c1cb66
commit 71a46e27c211d4eda08dfff2d077f814f8c1cb66
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Fri Apr 4 00:00:28 2014 +0200
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Fri Apr 4 00:29:41 2014 +0200

    Features: Add cxx_static_assert.

diff --git a/Help/variable/CMAKE_CXX_KNOWN_FEATURES.rst b/Help/variable/CMAKE_CXX_KNOWN_FEATURES.rst
index fb2fba3..77ae685 100644
--- a/Help/variable/CMAKE_CXX_KNOWN_FEATURES.rst
+++ b/Help/variable/CMAKE_CXX_KNOWN_FEATURES.rst
@@ -26,3 +26,8 @@ The features known to this version of CMake are:
   Constant expressions, as defined in N2235_.
 
 .. _N2235: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2235.pdf
+
+``cxx_static_assert``
+  Static assert, as defined in N1720_.
+
+.. _N1720: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1720.html
diff --git a/Modules/Compiler/GNU-CXX-FeatureTests.cmake b/Modules/Compiler/GNU-CXX-FeatureTests.cmake
index aafc7d6..6e69804 100644
--- a/Modules/Compiler/GNU-CXX-FeatureTests.cmake
+++ b/Modules/Compiler/GNU-CXX-FeatureTests.cmake
@@ -9,4 +9,7 @@ set(_cmake_feature_test_cxx_constexpr "${GNU46_CXX11}")
 # TODO: Should be supported by GNU 4.4
 set(GNU44_CXX11 "${_oldestSupported} && __cplusplus >= 201103L")
 set(_cmake_feature_test_cxx_variadic_templates "${GNU44_CXX11}")
+# TODO: Should be supported by GNU 4.3
+set(GNU43_CXX11 "${_oldestSupported} && __cplusplus >= 201103L")
+set(_cmake_feature_test_cxx_static_assert "${GNU43_CXX11}")
 set(_oldestSupported)
diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx
index bfee840..c007acc 100644
--- a/Source/cmMakefile.cxx
+++ b/Source/cmMakefile.cxx
@@ -44,7 +44,8 @@
 #define FOR_EACH_CXX_FEATURE(F) \
   F(cxx_delegating_constructors) \
   F(cxx_variadic_templates) \
-  F(cxx_constexpr)
+  F(cxx_constexpr) \
+  F(cxx_static_assert)
 
 class cmMakefile::Internals
 {
diff --git a/Tests/CompileFeatures/cxx_static_assert.cpp b/Tests/CompileFeatures/cxx_static_assert.cpp
new file mode 100644
index 0000000..6aa8678
--- /dev/null
+++ b/Tests/CompileFeatures/cxx_static_assert.cpp
@@ -0,0 +1,2 @@
+
+static_assert(true, "static_assert test");

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=f3243f1cc0fab2ce799804f80753d0eff53ce744
commit f3243f1cc0fab2ce799804f80753d0eff53ce744
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Tue Mar 18 12:53:01 2014 +0100
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Fri Apr 4 00:29:28 2014 +0200

    Features: Add cxx_constexpr.

diff --git a/Help/variable/CMAKE_CXX_KNOWN_FEATURES.rst b/Help/variable/CMAKE_CXX_KNOWN_FEATURES.rst
index d8e6ef3..fb2fba3 100644
--- a/Help/variable/CMAKE_CXX_KNOWN_FEATURES.rst
+++ b/Help/variable/CMAKE_CXX_KNOWN_FEATURES.rst
@@ -21,3 +21,8 @@ The features known to this version of CMake are:
   Variadic templates, as defined in N2242_.
 
 .. _N2242: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2242.pdf
+
+``cxx_constexpr``
+  Constant expressions, as defined in N2235_.
+
+.. _N2235: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2235.pdf
diff --git a/Modules/Compiler/GNU-CXX-FeatureTests.cmake b/Modules/Compiler/GNU-CXX-FeatureTests.cmake
index 73f7f0e..aafc7d6 100644
--- a/Modules/Compiler/GNU-CXX-FeatureTests.cmake
+++ b/Modules/Compiler/GNU-CXX-FeatureTests.cmake
@@ -3,6 +3,9 @@ set(_oldestSupported "(__GNUC__ * 100 + __GNUC_MINOR__) >= 408")
 # TODO: Should be supported by GNU 4.7
 set(GNU47_CXX11 "${_oldestSupported} && __cplusplus >= 201103L")
 set(_cmake_feature_test_cxx_delegating_constructors "${GNU47_CXX11}")
+# TODO: Should be supported by GNU 4.6
+set(GNU46_CXX11 "${_oldestSupported} && __cplusplus >= 201103L")
+set(_cmake_feature_test_cxx_constexpr "${GNU46_CXX11}")
 # TODO: Should be supported by GNU 4.4
 set(GNU44_CXX11 "${_oldestSupported} && __cplusplus >= 201103L")
 set(_cmake_feature_test_cxx_variadic_templates "${GNU44_CXX11}")
diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx
index da56636..bfee840 100644
--- a/Source/cmMakefile.cxx
+++ b/Source/cmMakefile.cxx
@@ -43,7 +43,8 @@
 
 #define FOR_EACH_CXX_FEATURE(F) \
   F(cxx_delegating_constructors) \
-  F(cxx_variadic_templates)
+  F(cxx_variadic_templates) \
+  F(cxx_constexpr)
 
 class cmMakefile::Internals
 {
diff --git a/Tests/CompileFeatures/cxx_constexpr.cpp b/Tests/CompileFeatures/cxx_constexpr.cpp
new file mode 100644
index 0000000..570c10f
--- /dev/null
+++ b/Tests/CompileFeatures/cxx_constexpr.cpp
@@ -0,0 +1,5 @@
+
+constexpr int getNum()
+{
+  return 42;
+}

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=ef0360a9a0dbcc11aa7f78178fd804986f20f9f8
commit ef0360a9a0dbcc11aa7f78178fd804986f20f9f8
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Wed Apr 2 15:02:41 2014 +0200
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Fri Apr 4 00:29:15 2014 +0200

    Features: Add cxx_variadic_templates.

diff --git a/Help/variable/CMAKE_CXX_KNOWN_FEATURES.rst b/Help/variable/CMAKE_CXX_KNOWN_FEATURES.rst
index cdb6fc4..d8e6ef3 100644
--- a/Help/variable/CMAKE_CXX_KNOWN_FEATURES.rst
+++ b/Help/variable/CMAKE_CXX_KNOWN_FEATURES.rst
@@ -16,3 +16,8 @@ The features known to this version of CMake are:
   Delegating constructors, as defined in N1986_.
 
 .. _N1986: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1986.pdf
+
+``cxx_variadic_templates``
+  Variadic templates, as defined in N2242_.
+
+.. _N2242: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2242.pdf
diff --git a/Modules/Compiler/GNU-CXX-FeatureTests.cmake b/Modules/Compiler/GNU-CXX-FeatureTests.cmake
index 5518b16..73f7f0e 100644
--- a/Modules/Compiler/GNU-CXX-FeatureTests.cmake
+++ b/Modules/Compiler/GNU-CXX-FeatureTests.cmake
@@ -3,4 +3,7 @@ set(_oldestSupported "(__GNUC__ * 100 + __GNUC_MINOR__) >= 408")
 # TODO: Should be supported by GNU 4.7
 set(GNU47_CXX11 "${_oldestSupported} && __cplusplus >= 201103L")
 set(_cmake_feature_test_cxx_delegating_constructors "${GNU47_CXX11}")
+# TODO: Should be supported by GNU 4.4
+set(GNU44_CXX11 "${_oldestSupported} && __cplusplus >= 201103L")
+set(_cmake_feature_test_cxx_variadic_templates "${GNU44_CXX11}")
 set(_oldestSupported)
diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx
index 5df822b..da56636 100644
--- a/Source/cmMakefile.cxx
+++ b/Source/cmMakefile.cxx
@@ -42,7 +42,8 @@
 #include <assert.h>
 
 #define FOR_EACH_CXX_FEATURE(F) \
-  F(cxx_delegating_constructors)
+  F(cxx_delegating_constructors) \
+  F(cxx_variadic_templates)
 
 class cmMakefile::Internals
 {
diff --git a/Tests/CompileFeatures/cxx_variadic_templates.cpp b/Tests/CompileFeatures/cxx_variadic_templates.cpp
new file mode 100644
index 0000000..a4f87c0
--- /dev/null
+++ b/Tests/CompileFeatures/cxx_variadic_templates.cpp
@@ -0,0 +1,20 @@
+template<int I, int... Is>
+struct Interface;
+
+template<int I>
+struct Interface<I>
+{
+  static int accumulate()
+  {
+    return I;
+  }
+};
+
+template<int I, int... Is>
+struct Interface
+{
+  static int accumulate()
+  {
+    return I + Interface<Is...>::accumulate();
+  }
+};

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=3784e268feb65e7bf85a0fc259da6c91a17ea182
commit 3784e268feb65e7bf85a0fc259da6c91a17ea182
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Thu Apr 3 19:00:45 2014 +0200
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Thu Apr 3 23:57:22 2014 +0200

    Refactor the test a bit. Build only one target.

diff --git a/Tests/CompileFeatures/CMakeLists.txt b/Tests/CompileFeatures/CMakeLists.txt
index e881918..b542c17 100644
--- a/Tests/CompileFeatures/CMakeLists.txt
+++ b/Tests/CompileFeatures/CMakeLists.txt
@@ -3,21 +3,22 @@ cmake_minimum_required(VERSION 3.0)
 
 project(CompileFeatures)
 
-macro(run_test feature)
+foreach(feature ${CMAKE_CXX_KNOWN_FEATURES})
   if (";${CMAKE_CXX_COMPILE_FEATURES};" MATCHES ${feature})
-    add_library(test_${feature} OBJECT ${feature}.cpp)
-    set_property(TARGET test_${feature}
-      PROPERTY COMPILE_FEATURES "${feature}"
-    )
+    list(APPEND test_files ${feature}.cpp)
+    list(APPEND test_features ${feature})
   else()
     message("Not supported: ${feature}")
   endif()
-endmacro()
-
-foreach(feature ${CMAKE_CXX_KNOWN_FEATURES})
-  run_test(${feature})
 endforeach()
 
+if (test_files)
+  add_library(test_features OBJECT ${test_files})
+  set_property(TARGET test_features
+    PROPERTY COMPILE_FEATURES "${test_features}"
+  )
+endif()
+
 add_executable(CompileFeatures main.cpp)
 set_property(TARGET CompileFeatures
   PROPERTY COMPILE_FEATURES "cxx_delegating_constructors"

-----------------------------------------------------------------------

Summary of changes:
 Help/variable/CMAKE_CXX_KNOWN_FEATURES.rst         |   90 ++++++++++++++++++++
 Modules/Compiler/GNU-CXX-FeatureTests.cmake        |   26 ++++++
 Source/cmMakefile.cxx                              |   20 ++++-
 Tests/CompileFeatures/CMakeLists.txt               |   19 +++--
 Tests/CompileFeatures/cxx_auto_function.cpp        |    5 ++
 Tests/CompileFeatures/cxx_auto_type.cpp            |    5 ++
 Tests/CompileFeatures/cxx_constexpr.cpp            |    5 ++
 Tests/CompileFeatures/cxx_decltype.cpp             |    7 ++
 Tests/CompileFeatures/cxx_defaulted_functions.cpp  |    9 ++
 Tests/CompileFeatures/cxx_deleted_functions.cpp    |    6 ++
 Tests/CompileFeatures/cxx_explicit_conversions.cpp |   10 +++
 Tests/CompileFeatures/cxx_final.cpp                |    2 +
 .../cxx_inheriting_constructors.cpp                |   18 ++++
 Tests/CompileFeatures/cxx_lambdas.cpp              |    5 ++
 Tests/CompileFeatures/cxx_noexcept.cpp             |    5 ++
 .../CompileFeatures/cxx_nonstatic_member_init.cpp  |    4 +
 Tests/CompileFeatures/cxx_nullptr.cpp              |   10 +++
 Tests/CompileFeatures/cxx_override.cpp             |    7 ++
 Tests/CompileFeatures/cxx_range_for.cpp            |   10 +++
 Tests/CompileFeatures/cxx_static_assert.cpp        |    2 +
 Tests/CompileFeatures/cxx_strong_enums.cpp         |    7 ++
 Tests/CompileFeatures/cxx_variadic_templates.cpp   |   20 +++++
 22 files changed, 282 insertions(+), 10 deletions(-)
 create mode 100644 Tests/CompileFeatures/cxx_auto_function.cpp
 create mode 100644 Tests/CompileFeatures/cxx_auto_type.cpp
 create mode 100644 Tests/CompileFeatures/cxx_constexpr.cpp
 create mode 100644 Tests/CompileFeatures/cxx_decltype.cpp
 create mode 100644 Tests/CompileFeatures/cxx_defaulted_functions.cpp
 create mode 100644 Tests/CompileFeatures/cxx_deleted_functions.cpp
 create mode 100644 Tests/CompileFeatures/cxx_explicit_conversions.cpp
 create mode 100644 Tests/CompileFeatures/cxx_final.cpp
 create mode 100644 Tests/CompileFeatures/cxx_inheriting_constructors.cpp
 create mode 100644 Tests/CompileFeatures/cxx_lambdas.cpp
 create mode 100644 Tests/CompileFeatures/cxx_noexcept.cpp
 create mode 100644 Tests/CompileFeatures/cxx_nonstatic_member_init.cpp
 create mode 100644 Tests/CompileFeatures/cxx_nullptr.cpp
 create mode 100644 Tests/CompileFeatures/cxx_override.cpp
 create mode 100644 Tests/CompileFeatures/cxx_range_for.cpp
 create mode 100644 Tests/CompileFeatures/cxx_static_assert.cpp
 create mode 100644 Tests/CompileFeatures/cxx_strong_enums.cpp
 create mode 100644 Tests/CompileFeatures/cxx_variadic_templates.cpp


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list