小编Ami*_*aka的帖子

std :: future作为函数C++的参数

考虑以下代码

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++ c++11 stdasync

12
推荐指数
1
解决办法
4257
查看次数

具有重载函数的std :: async

可能重复:

std :: bind重载决议

考虑以下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':不能推断模板参数,因为函数参数是不明确的.我该如何解决这种歧义?

c++ overloading stdasync

9
推荐指数
1
解决办法
1355
查看次数

使用sqlplus检索大型Clob数据

如何使用sqlplus到stdout从表中完全检索大型Clob数据?有一种方法可以使用特定于语言的数据库API来完全获得它。但是当我尝试使用纯sqlplus来获取它时,我遇到了一些问题,例如,

  • 输出缓冲区太小(最大4000)
  • 字符串缓冲区太小

由于oracle clob字段可以包含4GB(最大)数据,因此,有没有使用sqlplus获取完整数据块的正确方法?我可以下载为文件吗?

我希望这个问题是明确的。我更愿意在不向数据库注入PL / SQL过程的情况下做到这一点。

oracle sqlplus clob

3
推荐指数
1
解决办法
2654
查看次数

标签 统计

c++ ×2

stdasync ×2

c++11 ×1

clob ×1

oracle ×1

overloading ×1

sqlplus ×1