Well, you can run a clone detector on your source
code base every night.
Many clone detectors work by comparing source lines,
and can only find exact duplicate code.
CCFinder, above, works by comparing language
tokens, so it isn't sensitive to white space
changes. It can detect clones which are variants
of the original code if there only single token
changes (e.g, change a variable X to Y in
the clone).
Ideally what you want is the above, but the ability
to find clones where
the variations are allowed to be relatively arbitrary,
e.g., replace a variable by an expression, a statement
by a block, etc.
Our CloneDR clone detector does this for Java, C#, C++, COBOL, VB.net, VB6, Fortran and a variety
of other languages. It can be seen at:
http://www.semdesigns.com/Products/Clone/index.html
As well as being able to handle multiple languages, CloneDR engine is capable of handling a variety of input encoding styles, including ASCII, ISO-8859-1, UTF8, UTF16, EBCDIC, a number of Microsoft encodings, and (Japanese) Shift-JIS.
The site has several clone detection run example reports, including one for C++.
EDIT Feb 2014: Now handles all of C++14.