‘template<class T1, class T2> struct AdjL’ used without template arguments
时间: 2023-09-13 15:03:31 浏览: 231
这个错误通常表示你在使用 `template` 定义的结构体或类时,没有提供正确的模板参数。
例如,如果你有以下的结构体定义:
```cpp
template<class T>
struct Node {
T data;
Node<T>* next;
};
```
那么在使用它的时候,需要提供正确的模板参数:
```cpp
Node<int>* node = new Node<int>();
```
如果你在使用时没有提供模板参数,就会出现 `used without template arguments` 的错误。
相关问题
在外部定义使用 template 定义的结构体的成员函数时报错‘template<class T1, class T2> struct AdjL’ used without template arguments
这个问题通常是因为你在定义成员函数时忘记了指定结构体的模板参数。解决方法是在成员函数的定义前加上结构体的模板参数列表。
例如,如果你有一个这样的结构体定义:
```cpp
template<class T1, class T2>
struct AdjL {
// 成员变量和其他成员函数
void add_edge(T1 u, T2 v);
};
```
那么你想要在外部定义 `add_edge` 函数时,需要指定模板参数,像这样:
```cpp
template<class T1, class T2>
void AdjL<T1, T2>::add_edge(T1 u, T2 v) {
// 函数实现
}
```
这样就可以避免出现错误信息了。
template struct
`template struct` is a C++ syntax for defining a class or struct template. A template is a way to create a generic class or function that can be used with different types of data. When defining a template struct, the keyword `template` is followed by a set of template parameters enclosed in angle brackets, which specify the types or values that the template can be instantiated with.
For example, the following code defines a template struct `Pair` with two template parameters `T1` and `T2`, which represent the types of the first and second elements of the pair:
```
template <typename T1, typename T2>
struct Pair {
T1 first;
T2 second;
};
```
This allows us to create pairs of different types, such as `Pair<int, double>` or `Pair<std::string, bool>`. The actual types are substituted for the template parameters when the template is instantiated.
阅读全文