111*_*111 6 c++ sql prepared-statement c++11
好的,所以我在c ++ 0x中编写了一个DB包装器,API在C中.
我有prerepared语句,我可以在运行时绑定.
我想绑定并执行1函数调用中的语句到包装器.
我最初的是使用变体模板.但是根据我看到的文档,我还没有找到如何将作为模板类型输入的类型限制为固定集(int,string,double),以及如何能够对这些类型执行基本逻辑.
像(伪代码)
foreach arg in args
if arg1==std::string
bindToString(arg);
else if int...
Run Code Online (Sandbox Code Playgroud)
谢谢
利用函数重载.
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);
Run Code Online (Sandbox Code Playgroud)
- 编辑 -
使用可变参数模板的另一种方法
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...);
}
Run Code Online (Sandbox Code Playgroud)