Visual Studio 无法确定全局变量的类型
Visual studio cannot determine the type of my global variables
我所拥有的是:
#include "thread.h"
#include <iostream>
#include <fstream>
#include <vector>
#include <string>
using namespace std;
vector<Requester*> requesters; //global
struct Requester {
vector<thread> t;
vector<int> tracks;
};
然后在我的函数中,我有:
void serviceQ(){
vector<Requester*> test = requesters; //error
}
错误是:
no suitable user-defined conversion from "std::vector<<error-type> *, std::allocator<<error-type> *>>" to "std::vector<Requester *, std::allocator<Requester *>>" exists
我很困惑为什么会这样。为什么它在函数中将我的全局变量称为错误类型?如果我要做这样的事情:
void serviceQ(){
vector<Requester*> test;
//do some stuff
vector<Requester*> result = test; //no error
}
那么就没有错误了。
你需要定义
vector<Requester*> requesters; //global
在定义struct Requester
之后,否则编译器在尝试定义相应的vector<Requester*>
时不知道Requester*
是什么意思。或者,您可以直接声明
struct Requester;
在vector<Requester*> requesters;
行上方。
相关文章:
- 在全局变量中保存类的实例以重新创建类(创建"backup")
- 当vector是tje全局变量时,c++中vector的内存管理
- std::threads可以从Windows DLL中的全局变量创建/销毁吗?
- 内联函数中具有内部链接的全局变量
- 如何在信号处理程序和普通函数中对全局变量进行互斥读写操作
- 全局变量 多读取器 一个写入器多线程安全?
- 如果全局变量默认是外部变量,为什么要添加"extern"关键字?
- 不同作用域中的静态变量和全局变量
- C++ 在编译时具有函数计算全局变量
- 修改程序的入口点时未调用全局变量的构造函数
- 将不同类型的变量添加到向量中
- 使用 std::ios_base::Init 正确初始化全局变量
- 为什么我不能使用 constexpr 全局变量来初始化 constexpr 引用类型
- 将大小设置为结构类型全局变量时发生编译器错误
- 变量类型全局、静态、局部和自动
- 为什么类类型的静态变量和全局变量是危险的
- 如何在if/else序列中定义未知类型的全局变量
- Visual Studio 无法确定全局变量的类型
- 指向用户定义类型的类的全局变量指针
- 引用全局变量的模板函数(取决于类型)