Merge topic 'disallowed-cxx-subset'

ed632736 Help: Note that std::string::clear may not be used.
cc04bb6c Help: Document non-use of std::set::insert.
This commit is contained in:
Brad King 2014-01-27 13:03:40 -05:00 committed by CMake Topic Stage
commit 93ddb26311
1 changed files with 29 additions and 4 deletions

View File

@ -33,17 +33,19 @@ The ``at()`` member function of ``std::vector`` may not be used. Use
int i1 = someVec.at(5); // Wrong
int i2 = someVec[5]; // Ok
std::string::append
-------------------
std::string::append and std::string::clear
------------------------------------------
The ``append()`` member function of ``std::string`` may not be used. Use
``operator+=`` instead:
The ``append()`` and ``clear()`` member functions of ``std::string`` may not
be used. Use ``operator+=`` and ``operator=`` instead:
.. code-block:: c++
std::string stringBuilder;
stringBuilder.append("chunk"); // Wrong
stringBuilder.clear(); // Wrong
stringBuilder += "chunk"; // Ok
stringBuilder = ""; // Ok
std::set const iterators
------------------------
@ -124,6 +126,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<cmTarget*> 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
---------------------------