Hopefully this full example I just tested will clarify:
class CObjectA { };
class CObjectB { };
class CObjectC { };
class CObjectD { };
template<class T> char ClassMetadataFn();
template<> ClassMetadataFn<CObjectA>() { return 'A'; }
template<> ClassMetadataFn<CObjectB>() { return 'B'; }
template<> ClassMetadataFn<CObjectC>() { return 'C'; }
template<> ClassMetadataFn<CObjectD>() { return 'D'; }
Typing "CObject" or ".CObject" into the Find Symbol dialog highlights "ClassMetadataFn<CObjectA>". I could live with a "start of line" character akin to '.', though it still feels awkward that it doesn't prefer that by default for the initial auto-selection.