相关疑难解决方法(0)

在lambda中移动捕获

如何通过C++ 11 lambda中的move(也称为右值引用)捕获?

我想写这样的东西:

std::unique_ptr<int> myPointer(new int);

std::function<void(void)> example = [std::move(myPointer)]{
   *myPointer = 4;
};
Run Code Online (Sandbox Code Playgroud)

c++ lambda rvalue-reference c++11

135
推荐指数
4
解决办法
6万
查看次数

将函数转发到c ++ 11中的lambda表达式

对于C++ 11中的Packaged_Task实现,我希望实现我在下面的C++ 14代码中所表达的内容.换句话说,我想转发一个lambda表达式.

template<class F>
Packaged_Task(F&& f) {
    Promise<R> p;
    _future = p.get_future();

     auto f_holder = [f = std::forward<F>(f)]() mutable { return std::move(f); };
 ///...
Run Code Online (Sandbox Code Playgroud)

我知道移植到lambda的变通方法(但不幸的是这个变通方法需要一个默认的可构造对象,在我的例子中,对象通常是没有default-constructor的lambda表达式)

c++ lambda c++11

6
推荐指数
1
解决办法
653
查看次数

标签 统计

c++ ×2

c++11 ×2

lambda ×2

rvalue-reference ×1