【发布时间】:2014-03-18 10:56:18
【问题描述】:
我正在尝试使用templates 重新实现一个单链表类。下面是有问题的代码。
template<typename T>
class list
{
private:
struct node
{
node* next;
T data;
node( T d ) : next( nullptr ), data( d ) {}
};
node* first_node;
size_t m_size;
public:
list() : first_node( nullptr ), size( 0 ) {}
// ...
};
一切正常,直到我尝试使用(即在方法 push_back() 中)node* 类型变量的成员。示例:
void push_back( const T& data )
{
node* temp = first_node;
while( temp->next )
{
temp = temp->next;
}
// ...
}
当我键入 temp-> 时,Visual Studio 的 IntelliSense 应该会弹出一个上下文菜单来显示 node 结构的成员。它没有这样做。此外,当我将 next 悬停在代码中时,工具提示如下所示:
让我说清楚:我没有收到任何调试错误,但我的问题是:为什么 Visual Studio 2013 不能计算这些东西?
【问题讨论】:
-
总之你的程序完全没有问题,只有VS的GUI?还是我误会了?
-
我的程序运行正常,所以代码没有问题。问题在于 VS IntelliSense 和 GUI
标签: c++ visual-studio templates visual-studio-2013