我有以下类定义:
template <typename T>
class SeqVisitor {
public:
typedef string* return_type;
return_type visit(int elem) const;
return_type visit(char elem) const;
return_type visit(T elem) const;
};
当我使用SeqVisitor<char>
调用访问时是模棱两可的。如果我在类定义之外定义函数,那么对该函数的调用就不会模棱两可了。编译器会选择带有“char elem”而不是“T elem”的那个。可以修复我的类定义,使其表现出相同的行为。那就是摆脱歧义。