我正在使用模板在C++中处理一些数据结构,遇到了一些问题。我正在实现一个使用链接的哈希表,并且我还实现了一个链表。我遇到的第一个问题是我的模板定义出现了链接错误,通过包含声明的.cpp
文件解决了这个问题。
现在我遇到了另一个问题,我不确定它是否与模板相关或者可能是VS设置的问题。首先,在没有保存并编译我的入口点的情况下,构建项目不会进行更新。我读了一些问题,设置似乎没问题。最重要的问题是,在我的Hashtable.cpp
文件中,我有关于我的List
类的自动完成问题。
例如:
我在我的Hashtable
类中使用了List<T> **arr
,每当我尝试使用任何列表方法,比如arr [1]-> insert(100)
,它不仅不会自动完成,而且它显示方法属于的对象,如下面的截图所示。
声明看起来像这样:
Hashtable.h
:
#pragma once
#include "Log.h"
#include "List.h"
#include <vector>
#include <iostream>
Hashtable.cpp
:#include“ Hashtable.h”
我的列表类别没有包含任何特殊的东西,只有 iostream
等。
我想指出的是,这段代码没有自动完成,但它可以运行正确的方法,但使用起来确实很不舒服和烦人。此外,我担心它在另一台计算机上可能无法正常工作,这对我来说真的很重要。 你有什么想法吗?
我提到的截图链接
std::list
而是你自己的类,但这样做是值得的。这并不是解决自动完成问题的方法。 - Galikstd::string
和std::vector
(以及我的模板),这对我有效,因此我不认为你的模板在自动补全时会出现问题。@GuillaumeRacicot 注意他的情况中没有依赖类型。希望在 C++20 中,概念将变得方便,以便自动完成依赖类型。 - Marek R