From cc04bb6c16fba66b8d73807d5e4a397d6450a6b7 Mon Sep 17 00:00:00 2001 From: Stephen Kelly Date: Fri, 24 Jan 2014 15:44:16 +0100 Subject: Help: Document non-use of std::set::insert. As found in commit 8e7c207e (Use a manual loop to insert into set::set., 2012-09-15). --- Help/manual/cmake-developer.7.rst | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/Help/manual/cmake-developer.7.rst b/Help/manual/cmake-developer.7.rst index d5fbc98..8df2ca1 100644 --- a/Help/manual/cmake-developer.7.rst +++ b/Help/manual/cmake-developer.7.rst @@ -124,6 +124,29 @@ A loop must be used instead: theVector.push_back(*li); } +std::set::insert +---------------- + +Use of ``std::set::insert`` is not allowed with any source container: + +.. code-block:: c++ + + std::set theSet; + theSet.insert(targets.begin(), targets.end()); // Wrong + +A loop must be used instead: + +.. code-block:: c++ + + ConstIterator it = targets.begin(); + const ConstIterator end = targets.end(); + for ( ; it != end; ++it) + { + theSet.insert(*it); + } + +.. MSVC6, SunCC 5.9 + Template Parameter Defaults --------------------------- -- cgit v0.12