使用typedef时没有可用的成员

时间:2013-02-14 11:53:28

标签: c++ visual-studio-2012 intellisense typedef

假设我有一个类A,它有一个名为init()的公共方法。当我创建std::vector类型A的对象时,我可以轻松地为所有对象调用此方法:

std::vector<A> v;

/* filling vector with some objects */

v[1].init();   // Intellisense finds that v[1] object has method 'init()'

但是当我使用typedef时,我无法访问该方法:

typedef std::vector<A> a_vector;

a_vector v;

/* filling vector with some objects */

v[1].   // Intellisense says that v[1] object doesn't have any members available

为什么使用typedef导致此类行为?

1 个答案:

答案 0 :(得分:3)

可能只是VS2012缓存符号定义文件中的一个小故障。关闭解决方案,删除解决方案目录中的sdf文件(名为[SolutionName] .sdf)并重新打开解决方案。给符号缓存几分钟重新构建(取决于项目的大小)并希望最好。每当出现问题时都要冲洗并重复(尤其是对于包含大量代码的解决方案)。