考虑以下代码
void printPromised(std::future<int> f)
{
std::cout << f.get() << std::endl;
}
int main()
{
printPromised(std::async(std::launch::async, [](){ return 8; })); // This works
auto f = std::async(std::launch::async, [](){ return 8; });
printPromised(f); // This won't work
}
Run Code Online (Sandbox Code Playgroud)
它说"这是一个删除的功能".这是为什么?此外,我需要传递(共享)std::async生成的相同承诺结果; 给多个用户.这意味着当有人调用"getter"时,我需要传递相同的结果(std::async如果已经生成了,我不需要重新生成结果)并且我还需要具有的阻塞机制std::future::get.
可能重复:
考虑以下C++示例
class A
{
public:
int foo(int a, int b);
int foo(int a, double b);
};
int main()
{
A a;
auto f = std::async(std::launch::async, &A::foo, &a, 2, 3.5);
}
Run Code Online (Sandbox Code Playgroud)
这给出了'std :: async':不能推断模板参数,因为函数参数是不明确的.我该如何解决这种歧义?
如何使用sqlplus到stdout从表中完全检索大型Clob数据?有一种方法可以使用特定于语言的数据库API来完全获得它。但是当我尝试使用纯sqlplus来获取它时,我遇到了一些问题,例如,
由于oracle clob字段可以包含4GB(最大)数据,因此,有没有使用sqlplus获取完整数据块的正确方法?我可以下载为文件吗?
我希望这个问题是明确的。我更愿意在不向数据库注入PL / SQL过程的情况下做到这一点。