我正在使用SQLAlchemy和ORM paragdim.我无法找到一种方法来执行CASE WHEN指令.我在网上找不到这方面的信息.
可能吗 ?
我使用名为 fmt 的格式化库(http://fmtlib.net/latest/)。
可能的用途之一是:
fmt::format("Hello, {name}! The answer is {number}. Goodbye, {name}.", fmt::arg("name", "World"), fmt::arg("number", 42));
Run Code Online (Sandbox Code Playgroud)
我想将此调用包装在一个函数中,我将其调用为:
myFunction(myString, {"name", "World"}, {"number", 42});
Run Code Online (Sandbox Code Playgroud)
对于任意数量的参数。
到目前为止,我只成功地完成了一个可使用成对列表调用的函数:
myFunction(myString, std::make_pair("name", "World"), std::make_pair("number", 42));
Run Code Online (Sandbox Code Playgroud)
具有以下功能:
std::string myFunction(const char* str, const Args&... rest) const
{
return fmt::format(mLocale.getPOILabel(label), fmt::arg(rest.first, rest.second)...);
}
Run Code Online (Sandbox Code Playgroud)
但我不想使用成对的。
我应该怎么办 ?
PS:fmt::arg不能在函数之间传递。
如果我有以下代码:
void foo1()
{
NS1::Type1 instance1;
NS1::Type2 instance2;
NS1::Type3 instance3;
}
void foo2()
{
NS2::Type1 instance1;
NS2::Type2 instance2;
NS2::Type3 instance3;
}
Run Code Online (Sandbox Code Playgroud)
如何分解这个功能?
我可以从NS1调用foo1,从NS2调用foo2.