我在C ++中实现了一个小框架,我在大学里提供的课程中用它来帮助学生完成他们的作业。该框架最有价值的类之一是智能指针类,如您所想,它会使->
运算符超载。
最近我从VS2008升级到了VS2010,偶尔在键入运算符后出现intellisense问题。它不显示指向数据类型中可用的方法和字段,而是显示智能指针类的方法和字段。请注意,这不会一直发生,但一旦发生,它会有点令人沮丧,因为我最终浪费了很多时间。
你遇到过这样的麻烦吗?任何想法或建议来解决这个问题都将非常感激。
这可能听起来像是一个小问题,但它在课程中使用VS2010无效,直到我能解决这个问题。
先谢谢!
修改
我设法在较小的上下文中重现了这个问题。假设我有这样的事情:
template <class T>
struct ptr
{
T* operator->(){ return 0; }
void otherMember() {}
};
template <class T>
struct node
{
T value;
};
template <class T>
void foo()
{
ptr<node<int>> pi;
ptr<node<T>> pt;
pi->value = 10; // OK, intellisense shows 'value'
pt-> // wrong! intellisense shows 'operator->()' and 'otherMember()', instead of 'value'
}
有没有人遇到过同样的行为?