boost :: async可以与带有Visual C ++的Executor一起使用吗?

时间:2016-05-05 12:50:12

标签: c++ boost visual-studio-2015

我在使用Visual C ++时只使用下面的代码获得有关已删除函数的错误。 (VS 2015 更新2.我也试过VS 15的预览,但它是一样的)

最新版本的Clang和GCC都可以,但是VS可能更严格但确实正确吗?

#define BOOST_THREAD_PROVIDES_FUTURE
#define BOOST_THREAD_PROVIDES_FUTURE_CONTINUATION
#define BOOST_THREAD_PROVIDES_EXECUTORS

#include <boost/thread/future.hpp>

class TestEx {
public:
    void submit(std::function<void()>) {
    }

    bool try_executing_one() {
        return false;
    }

    bool closed() {
        return false;
    }

    void close() {
    }
};

int main()
{
    TestEx tex;
    boost::async(
        tex,
        []() {});

    return 0;
}

如果您想尝试编译,但无法访问Visual Studio 2015 Update 2并提升,则可以在线进行此操作。

http://rextester.com/BAX37541

1 个答案:

答案 0 :(得分:1)

Sean Cline指出答案是使用boost::executor_adaptor