summaryrefslogtreecommitdiffstats
path: root/Help
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2017-08-21 12:46:51 (GMT)
committerKitware Robot <kwrobot@kitware.com>2017-08-21 12:48:24 (GMT)
commitc1f3eb9f2d628b2911aa17f65012fab0befc4b87 (patch)
treeb5949a7285295a8ae4faa53acaf583221d6edf21 /Help
parenta1b84ac2a6eec367a8a56f4a0f811e78f5d60fab (diff)
parentfd4fd9a276126a1b1044d57a064c3b8201a91a33 (diff)
downloadCMake-c1f3eb9f2d628b2911aa17f65012fab0befc4b87.zip
CMake-c1f3eb9f2d628b2911aa17f65012fab0befc4b87.tar.gz
CMake-c1f3eb9f2d628b2911aa17f65012fab0befc4b87.tar.bz2
Merge topic 'require-c++11'
fd4fd9a2 Require C++11 to build CMake itself Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1132
Diffstat (limited to 'Help')
-rw-r--r--Help/dev/source.rst16
-rw-r--r--Help/release/dev/require-c++11.rst5
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.