gpt4 book ai didi

c++ - 在 C++ 中实现 sql 语句绑定(bind)的最佳方法

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:35:52 24 4
gpt4 key购买 nike

好的,所以我正在用 c++0x 编写一个 DB 包装器,API 在 C 中。

我已经准备好可以在运行时绑定(bind)的语句。

我想在对包装器的 1 个函数调用中绑定(bind)并执行语句。

虽然我最初是使用变体模板。但是根据我看到的文档,我还没有找到如何将作为模板类型输入的类型限制为固定集(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...);
}

关于c++ - 在 C++ 中实现 sql 语句绑定(bind)的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6324452/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com