Features: Add cxx_inheriting_constructors.

This commit is contained in:
Stephen Kelly 2014-04-03 19:18:01 +02:00
parent ebab2015f9
commit a579a0aab4
4 changed files with 26 additions and 0 deletions

View File

@ -52,6 +52,11 @@ The features known to this version of CMake are:
.. _N2928: http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2009/n2928.htm
``cxx_inheriting_constructors``
Inheriting constructors, as defined in N2540_.
.. _N2540: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2540.htm
``cxx_override``
Override control ``override`` keyword, as defined in N2928_.

View File

@ -2,6 +2,8 @@
# Reference: http://gcc.gnu.org/projects/cxx0x.html
set(_oldestSupported "(__GNUC__ * 100 + __GNUC_MINOR__) >= 408")
set(GNU48_CXX11 "(__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L")
set(_cmake_feature_test_cxx_inheriting_constructors "${GNU48_CXX11}")
# TODO: Should be supported by GNU 4.7
set(GNU47_CXX11 "${_oldestSupported} && __cplusplus >= 201103L")
set(_cmake_feature_test_cxx_delegating_constructors "${GNU47_CXX11}")

View File

@ -50,6 +50,7 @@
F(cxx_deleted_functions) \
F(cxx_explicit_conversions) \
F(cxx_final) \
F(cxx_inheriting_constructors) \
F(cxx_override) \
F(cxx_static_assert) \
F(cxx_strong_enums) \

View File

@ -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);
}