报错 E0441 缺少 类模板 "std::vector" 的参数列表
具体代码如下
#pragma once
#include <iostream>
#include<mysql.h>
#include<thread>
#include<cstring>
#include<map>
#include <vector>
using namespace std;
class PrepareBinder {
private:
std::vector paramBinds;//预处理的参数绑定
public:
/**
* 绑定的参数集的大小
* @param resultBindNum
*/
explicit PrepareBinder(int prepareBindNum) {
paramBinds.resize(prepareBindNum);//初始化绑定参数列表
}
std::vector& getParamBinds() {
return paramBinds;
}
/**
* 绑定整型
* @param pos
* @param value
*/
void bindValue(int pos, const int& value) {
paramBinds[pos].buffer_type = MYSQL_TYPE_LONG;
paramBinds[pos].buffer = (void*)&value;
paramBinds[pos].is_unsigned = false;
}
/**
* 绑定无符号整型
* @param pos
* @param value
*/
void bindValue(int pos, const unsigned int& value) {
paramBinds[pos].buffer_type = MYSQL_TYPE_LONG;
paramBinds[pos].buffer = (void*)&value;
paramBinds[pos].is_unsigned = true;
}
/**
* 绑定字符串
* @param pos
* @param value
*/
void bindValue(int pos, const std::string& value) {
paramBinds[pos].buffer_type = MYSQL_TYPE_STRING;
paramBinds[pos].buffer = (void*)value.c_str();
paramBinds[pos].buffer_length = value.size();
}
};
此代码的目的是对MySQL库的返回值进行处理,std::vector的作用是构造一个容器存储与处理数据类型。
使用std::vector报错 E0153 表达式必须具有类类型,但它具有类型 "int" 报错位置
paramBinds[pos].buffer_type = MYSQL_TYPE_LONG;
paramBinds[pos].buffer = (void*)&value;
paramBinds[pos].is_unsigned = false;
尝试过使用auto,但auto不可使用