mutable修饰符用来指明我们可以对const的变量进行修改,同样,在lambda函数中,也可以使用此修饰符。 按值捕获到lambda函数中的变量在函数体中默认是const类型,即不可修改,在添加了mutable修饰符后,便可以对此变量进行修改,但此时仍然修改的是位于lambda函数体中的局部变量,具体的用处类似于函数体中的static变量,只
1. mutable关键字的作用: 对[=] 捕获的变量进行去const操作,但是不会影响外部变量。如果没有const,var++则无法进行自增操作;如下图:加了mutable,则红线消失。 2. 上述代码的关键在于理解变量捕获的时机 结论: 1. lambda匿名函数,捕获变量的时机在第一次定义的时候,而不是多次调用的时候。 2. 看上述代码:调用...
按值捕获到lambda函数中的变量在函数体中默认是const类型,即不可修改,在添加了mutable修饰符后,便可以对此变量进行修改,但此时仍然修改的是位于lambda函数体中的局部变量,具体的用处类似于函数体中的static变量,只允许在该函数中改变。 int n {}; // 使用mutable时,参数列表“()”是不可以省略的 auto fun = [...