Do not share template repositories among multiple programs or libraries. That is, the following approach is not supported and can result in inconsistent results and random link errors.
demo% CC a.cc demo% CC b.cc
In practice, this means you must either compile separate programs (or libraries) in separate directories, or clean out the template repository between each program or library compilation.