> for (i = 0; i < st->tokenIndex; i++) > { > + const tokenInfo *const t = st->token[i]; > + > + /* stop if we find the token used to generate the tag name, or > + * a name token in the middle yet not preceded by a scope separator */ > + if ((t == nameToken || > + (t->type == nameToken->type && > + t->keyword == nameToken->keyword && > + t->lineNumber == nameToken->lineNumber && > + strcmp(vStringValue(t->name), vStringValue(nameToken->name)) == 0)) || > + (t->type == TOKEN_NAME && seenType && > + (i > 0 && st->token[i - 1]->type != TOKEN_DOUBLE_COLON)))
@b4n, leaving out the template parameters is sort of bad, they really are part of the type. Makes it quite long of course, but showing std::map
for std::map<std::string, std::pair<std::string, int>>
is missing a lot of information.
Also another test that has parens and semi-arbitary expressions in the type :)
decltype(std::declval<type_with_member_function_foo>().foo()) n2 = n1;
I am assuming trying these sorts of things now is better than waiting until you finish and then point out something else missing :)
—
Reply to this email directly or view it on GitHub.