Cpp Coding Standards/STL/PurePred

From Apache OpenOffice Wiki
< Cpp Coding Standards‎ | STL
Revision as of 00:08, 5 March 2007 by Thorsten (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

A predicate should be a pure function (i.e. its result should depend only on its arguments). Prefer to make operator() const, to let any maintainer violating this trip over a compiler error.

Why should you keep predicates pure? Because STL assumes they are, and tend to make copies of your predicate. Violating this might work for your specific platform (compiler & STL), but will probably break mysteriously for others.

Personal tools