diff options
author | Brad King <brad.king@kitware.com> | 2017-08-11 17:19:05 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2017-08-16 14:13:38 (GMT) |
commit | fd4fd9a276126a1b1044d57a064c3b8201a91a33 (patch) | |
tree | 4c0868140907e09853e2e65484fcab2beaf1b9cb /Help | |
parent | c47c011c77bfd1bfb8d2060511a2b957ce181c62 (diff) | |
download | CMake-fd4fd9a276126a1b1044d57a064c3b8201a91a33.zip CMake-fd4fd9a276126a1b1044d57a064c3b8201a91a33.tar.gz CMake-fd4fd9a276126a1b1044d57a064c3b8201a91a33.tar.bz2 |
Require C++11 to build CMake itself
CMake can now compile as C++11 on all supported platforms. Check that
std::unique_ptr is available and fail early if missing. This will allow
us to use C++11 more broadly in CMake's implementation (previously it
was restricted to the serve mode implementation).
Co-Author: Daniel Pfeifer <daniel@pfeifer-mail.de>
Diffstat (limited to 'Help')
-rw-r--r-- | Help/dev/source.rst | 16 | ||||
-rw-r--r-- | Help/release/dev/require-c++11.rst | 5 |
2 files changed, 12 insertions, 9 deletions
diff --git a/Help/dev/source.rst b/Help/dev/source.rst index 16a9252..b40a884 100644 --- a/Help/dev/source.rst +++ b/Help/dev/source.rst @@ -23,20 +23,18 @@ format only a subset of files, such as those that are locally modified. C++ Subset Permitted ==================== -CMake supports compiling as C++98 in addition to C++11 and C++14. -In order to support building on older toolchains some constructs -need to be handled with care: +CMake requires compiling as C++11 or above. However, in order to support +building on older toolchains some constructs need to be handled with care: -* Use ``CM_AUTO_PTR`` instead of ``std::auto_ptr``. +* Do not use ``CM_AUTO_PTR`` or ``std::auto_ptr``. - The ``std::auto_ptr`` template is deprecated in C++11. We want to use it - so we can build on C++98 compilers but we do not want to turn off compiler - warnings about deprecated interfaces in general. Use the ``CM_AUTO_PTR`` - macro instead. + The ``std::auto_ptr`` template is deprecated in C++11. The ``CM_AUTO_PTR`` + macro remains leftover from C++98 support until its uses can be ported to + ``std::unique_ptr``. Do not add new uses of the macro. * Use ``CM_EQ_DELETE;`` instead of ``= delete;``. - Defining functions as *deleted* is not supported in C++98. Using + Older C++11 compilers do not support deleting functions. Using ``CM_EQ_DELETE`` will delete the functions if the compiler supports it and give them no implementation otherwise. Calling such a function will lead to compiler errors if the compiler supports *deleted* functions and linker diff --git a/Help/release/dev/require-c++11.rst b/Help/release/dev/require-c++11.rst new file mode 100644 index 0000000..7b849e7 --- /dev/null +++ b/Help/release/dev/require-c++11.rst @@ -0,0 +1,5 @@ +require-c++11 +------------- + +* Support for building CMake itself with C++98 compilers was dropped. + CMake is now implemented using C++11. |