সংক্ষিপ্ত উদাহরণ:
#include <iostream>
int main()
{
int n;
[&](){n = 10;}(); // OK
[=]() mutable {n = 20;}(); // OK
// [=](){n = 10;}(); // Error: a by-value capture cannot be modified in a non-mutable lambda
std::cout << n << "\n"; // "10"
}
প্রশ্ন: কেন আমাদের mutable
কীওয়ার্ডের প্রয়োজন ? নামযুক্ত ফাংশনগুলিতে প্রথাগত প্যারামিটারটি পাস করা থেকে এটি বেশ আলাদা। পিছনে যুক্তি কি?
আমি এই ধারণার মধ্যে ছিলাম যে ক্যাপচার-বাই-ভ্যালুটির পুরো বিন্দুটি ব্যবহারকারীকে অস্থায়ী পরিবর্তন করতে দেয় - অন্যথায় আমি ক্যাপচার-বাই-রেফারেন্স ব্যবহার করে প্রায় সবসময়ই ভাল, আমি না?
কোন আলোকিতকরণ?
(আমি এমএসভিসি ২০০-এর ব্যবহার করছি AF এএফএইকি এটি স্ট্যান্ডার্ড হওয়া উচিত)
const
ডিফল্টরূপে না থাকে।
const
ডিফল্ট!