summaryrefslogtreecommitdiffstats
path: root/Help/dev
diff options
context:
space:
mode:
authorMarc Chevrier <marc.chevrier@gmail.com>2022-05-04 09:21:41 (GMT)
committerMarc Chevrier <marc.chevrier@gmail.com>2022-05-07 09:04:06 (GMT)
commit95a1b2c7b8cda5593a0a369b88b6b41669f44712 (patch)
tree9940b030ea206935fa68a12491d0d32f2a0bd482 /Help/dev
parent30f91596677b0b93f22b5123d27fb76f494d0864 (diff)
downloadCMake-95a1b2c7b8cda5593a0a369b88b6b41669f44712.zip
CMake-95a1b2c7b8cda5593a0a369b88b6b41669f44712.tar.gz
CMake-95a1b2c7b8cda5593a0a369b88b6b41669f44712.tar.bz2
stl containers: enhance compatibility with C++14, C++17 and C++20
* Ensure various functions working with containers are available through all headers as specified by the standard. * Add C++20 std::ssize() function.
Diffstat (limited to 'Help/dev')
-rw-r--r--Help/dev/source.rst104
1 files changed, 95 insertions, 9 deletions
diff --git a/Help/dev/source.rst b/Help/dev/source.rst
index 0ee104f..f488b3e 100644
--- a/Help/dev/source.rst
+++ b/Help/dev/source.rst
@@ -35,6 +35,18 @@ Available features are:
* From ``C++14``:
+ * ``<cm/array>``:
+ ``cm::cbegin``, ``cm::cend``, ``cm::rbegin``, ``cm::rend``,
+ ``cm::crbegin``, ``cm::crend``
+
+ * ``<cm/deque>``:
+ ``cm::cbegin``, ``cm::cend``, ``cm::rbegin``, ``cm::rend``,
+ ``cm::crbegin``, ``cm::crend``
+
+ * ``<cm/forward_list>``:
+ ``cm::cbegin``, ``cm::cend``, ``cm::rbegin``, ``cm::rend``,
+ ``cm::crbegin``, ``cm::crend``
+
* ``<cm/iomanip>``:
``cm::quoted``
@@ -42,68 +54,142 @@ Available features are:
``cm::make_reverse_iterator``, ``cm::cbegin``, ``cm::cend``,
``cm::rbegin``, ``cm::rend``, ``cm::crbegin``, ``cm::crend``
+ * ``<cm/list>``:
+ ``cm::cbegin``, ``cm::cend``, ``cm::rbegin``, ``cm::rend``,
+ ``cm::crbegin``, ``cm::crend``
+
+ * ``<cm/map>``:
+ ``cm::cbegin``, ``cm::cend``, ``cm::rbegin``, ``cm::rend``,
+ ``cm::crbegin``, ``cm::crend``
+
* ``<cm/memory>``:
``cm::make_unique``
+ * ``<cm/set>``:
+ ``cm::cbegin``, ``cm::cend``, ``cm::rbegin``, ``cm::rend``,
+ ``cm::crbegin``, ``cm::crend``
+
+ * ``<cm/string>``:
+ ``cm::cbegin``, ``cm::cend``, ``cm::rbegin``, ``cm::rend``,
+ ``cm::crbegin``, ``cm::crend``
+
+ * ``<cm/string_view>``:
+ ``cm::cbegin``, ``cm::cend``, ``cm::rbegin``, ``cm::rend``,
+ ``cm::crbegin``, ``cm::crend``
+
* ``<cm/shared_mutex>``:
``cm::shared_lock``
* ``<cm/type_traits>``:
``cm::enable_if_t``
+ * ``<cm/unordered_map>``:
+ ``cm::cbegin``, ``cm::cend``, ``cm::rbegin``, ``cm::rend``,
+ ``cm::crbegin``, ``cm::crend``
+
+ * ``<cm/unordered_set>``:
+ ``cm::cbegin``, ``cm::cend``, ``cm::rbegin``, ``cm::rend``,
+ ``cm::crbegin``, ``cm::crend``
+
+ * ``<cm/vector>``:
+ ``cm::cbegin``, ``cm::cend``, ``cm::rbegin``, ``cm::rend``,
+ ``cm::crbegin``, ``cm::crend``
+
* From ``C++17``:
* ``<cm/algorithm>``:
``cm::clamp``
+ * ``<cm/array>``:
+ ``cm::size``, ``cm::empty``, ``cm::data``
+
+ * ``<cm/deque>``:
+ ``cm::size``, ``cm::empty``, ``cm::data``
+
* ``cm/filesystem>``:
``cm::filesystem::path``
+ * ``<cm/forward_list>``:
+ ``cm::size``, ``cm::empty``, ``cm::data``
+
* ``<cm/iterator>``:
``cm::size``, ``cm::empty``, ``cm::data``
+ * ``<cm/list>``:
+ ``cm::size``, ``cm::empty``, ``cm::data``
+
+ * ``<cm/map>``:
+ ``cm::size``, ``cm::empty``, ``cm::data``
+
* ``<cm/optional>``:
``cm::nullopt_t``, ``cm::nullopt``, ``cm::optional``,
``cm::make_optional``, ``cm::bad_optional_access``
+ * ``<cm/set>``:
+ ``cm::size``, ``cm::empty``, ``cm::data``
+
* ``<cm/shared_mutex>``:
``cm::shared_mutex``
+ * ``<cm/string>``:
+ ``cm::size``, ``cm::empty``, ``cm::data``
+
* ``<cm/string_view>``:
- ``cm::string_view``
+ ``cm::string_view``, ``cm::size``, ``cm::empty``, ``cm::data``
* ``<cm/type_traits>``:
``cm::bool_constant``, ``cm::invoke_result_t``, ``cm::invoke_result``,
``cm::void_t``
+ * ``<cm/unordered_map>``:
+ ``cm::size``, ``cm::empty``, ``cm::data``
+
+ * ``<cm/unordered_set>``:
+ ``cm::size``, ``cm::empty``, ``cm::data``
+
* ``<cm/utility>``:
``cm::in_place_t``, ``cm::in_place``
+ * ``<cm/vector>``:
+ ``cm::size``, ``cm::empty``, ``cm::data``
+
* From ``C++20``:
+ * ``<cm/array>``:
+ ``cm::ssize``
+
* ``<cm/deque>``:
- ``cm::erase``, ``cm::erase_if``
+ ``cm::erase``, ``cm::erase_if``, ``cm::ssize``
+
+ * ``<cm/forward_list>``:
+ ``cm::ssize``
+
+ * ``<cm/iterator>``:
+ ``cm::ssize``
* ``<cm/list>``:
- ``cm::erase``, ``cm::erase_if``
+ ``cm::erase``, ``cm::erase_if``, ``cm::ssize``
* ``<cm/map>`` :
- ``cm::erase_if``
+ ``cm::erase_if``, ``cm::ssize``
* ``<cm/set>`` :
- ``cm::erase_if``
+ ``cm::erase_if``, ``cm::ssize``
+
+ * ``<cm/string_view>``:
+ ``cm::ssize``
* ``<cm/string>``:
- ``cm::erase``, ``cm::erase_if``
+ ``cm::erase``, ``cm::erase_if``, ``cm::ssize``
* ``<cm/unordered_map>``:
- ``cm::erase_if``
+ ``cm::erase_if``, ``cm::ssize``
* ``<cm/unordered_set>``:
- ``cm::erase_if``
+ ``cm::erase_if``, ``cm::ssize``
* ``<cm/vector>``:
- ``cm::erase``, ``cm::erase_if``
+ ``cm::erase``, ``cm::erase_if``, ``cm::ssize``
Additionally, some useful non-standard extensions to the C++ standard library
are available in headers under the directory ``cmext/`` in namespace ``cm``.