小编Che*_*hen的帖子

在C++ 14中使用通用lambdas和自动返回类型功能获得的结果不同

我试图用C++在python中实现这段高阶函数:

def add1(x):
    def helper():
        nonlocal x
        x += 1
        return x
    return helper
Run Code Online (Sandbox Code Playgroud)

以下是我创建的三个版本:

#include <iostream>
#include <functional>

using namespace std;

function<int(void)> add1_v1(int x) {
    function<int(void)> g = [&x]() {return ++x;};
    return g;
}

auto add1_v2(int x) {
    function<int(void)> g = [&x]() {return ++x;};
    return g;
}

auto add1_v3(int x) {
    auto g = [&x]() {return ++x;};
    return g;
}

int main() {
  auto a = add1_v1(100);
  auto b = add1_v2(100);
  auto c = add1_v3(100);
  for(int i = 0; …
Run Code Online (Sandbox Code Playgroud)

c++ python lambda c++14

5
推荐指数
1
解决办法
144
查看次数

标签 统计

c++ ×1

c++14 ×1

lambda ×1

python ×1