在C++中实现sql语句绑定的最佳方式
best way to implement a sql statement binding in C++
好的,所以我在c++0x中编写一个DB包装器,API在c中。
我有预先准备好的语句,可以在运行时绑定。
我想将一个函数调用中的语句绑定并执行到包装器。
不过,我最初是使用变体模板。但在我看到的文档中,我还没有发现如何将作为模板类型输入的类型限制为固定集(int、string、double),以及如何对这些类型执行基本逻辑。
类似(伪代码)
foreach arg in args
if arg1==std::string
bindToString(arg);
else if int...
感谢
利用函数重载。
void bind(std::string& arg) { bindstring(arg); }
void bind(int& arg) { bindint(arg); }
...
std::vector<boost::variant<double,std::string,int>> args = {...}
for (auto arg : args)
bind(arg);
--编辑-
另一种使用可变模板的方法
void bind(std::string& arg) { bindstring(arg); }
void bind(int& arg) { bindint(arg); }
void bind(void) {}
template <typename T, typename... Args>
void bind(T& arg, Args& args)
{
bind(arg); bind(args...);
}
相关文章:
- 我想将一个对T类型的非常量左值引用绑定到一个T类型的临时值
- 在基于范围的for循环中使用结构化绑定声明
- 使用 LuaBridge 将 LuaJIT 绑定到C++会导致"PANIC: unprotected error"
- 尝试通过OCI例程从Oracle获取blob数据,但出现错误:ORA-01008:并非所有变量都绑定
- 在使用GPU支持编译Tensorflow时,会遇到CUDA_TOOLKIT_PATH未绑定变量
- 视觉studo 2019中的漫画和静态/动态绑定
- 将自由函数绑定为类成员函数
- 将常量指针引用绑定到非常量指针
- 在派生类中绑定非静态模板化成员函数
- 绑定派生类方法C++从实例范围之外的分隔 std::function 变量调用
- 在 openGL 中多次绑定缓冲区
- 定义有趣的宏和正则表达式在Z3 C++绑定
- 使用结构化绑定'Reflection'
- 为什么 std::绑定错误参数可以成功?
- 如何绑定 C++ gRPC 客户端的网络接口
- 在 openmp 中,omp_get_thread_num是否绑定到物理线程?
- 将 pybind11 绑定标记为已弃用的最佳方法
- 在只读(即 const)访问器上执行结构化绑定的最佳实践是什么?
- C ++实现全局开关/标志以控制程序行为的最佳方法,而无需将类绑定到公共点
- 在C++中实现sql语句绑定的最佳方式