变量被编译器声明为const,导致无法编译
#include <vector>
#include <functional>
class Widget {
public:
void addFilter() const;
private:
int divisor;
using FilterContainer =
std::vector<std::function<bool(int)>>;
FilterContainer filters;
};
void Widget::addFilter() const
{
filters.emplace_back(
[=](int value) { return value % divisor == 0; }
);
}
int main()
{
;
}
这个自己声明的 const 。
这个 const 导致 this 变成 const,从而所有的成员都是 const ,比如里面的 filters (它其实是 this->filters)