আপডেট: নীচের উদ্ধৃতিতে কোর চেয়ারের প্রতিশ্রুতি অনুসারে, কোডটি এখন দূষিত :
একটি এমন শনাক্তকারী একটি সহজ-ক্যাপচার হিসাবে প্রদর্শিত হবে declarator-আইডি একটি পরামিতির ল্যামডা-declarator এর প্যারামিটার-ঘোষণা-দফা , প্রোগ্রাম মন্দ গঠিত হয়।
কিছুক্ষণ আগে ল্যাম্বডাসে নাম অনুসন্ধান সম্পর্কিত কয়েকটি সমস্যা ছিল। তারা N2927 দ্বারা সমাধান করা হয়েছিল :
নতুন শব্দবন্ধ আর ধরা পড়া সত্তাগুলির পুনর্নির্মাণের জন্য লুকের উপর নির্ভর করে না। এটি আরও স্পষ্টভাবে ব্যাখ্যাগুলি অস্বীকার করে যে একটি ল্যাম্বার যৌগিক বিবৃতি দুটি পাসে প্রক্রিয়াজাত করা হয় বা যে যৌগিক-বিবৃতিতে কোনও নাম বন্ধের ধরণের কোনও সদস্যকে সমাধান করতে পারে।
ল্যাম্পডা-এক্সপ্রেশন প্রসঙ্গে লুপআপ সর্বদা করা হয় , কোনও ক্লোজার টাইপের সদস্য ফাংশন বডিতে রূপান্তর "পরে" কখনই হয় না। দেখুন [expr.prim.lambda] / 8 :
ল্যামডা প্রকাশ এর যৌগ-বিবৃতি উৎপাদ ফাংশন শরীরের ফাংশন কল অপারেটর ([dcl.fct.def]), কিন্তু এখনও পর্যন্ত নাম লুকআপ উদ্দেশ্য পূরণকল্পে, [...], যৌগ-বিবৃতি প্রসঙ্গে বিবেচনা করা হয় ল্যামডা প্রকাশ । [ উদাহরণ :
struct S1 {
int x, y;
int operator()(int);
void f() {
[=]()->int {
return operator()(this->x+y); // equivalent to: S1::operator()(this->x+(*this).y)
// and this has type S1*
};
}
};
- শেষ উদাহরণ ]
(উদাহরণটি এও স্পষ্ট করে তোলে যে লুকোচুরি কোনওভাবে বন্ধের ধরণের উত্পন্ন ক্যাপচার সদস্যকে বিবেচনা করে না))
নাম foo
ক্যাপচারে ঘোষণা করা হয়নি (পুনরায়); এটি ল্যাম্বডা এক্সপ্রেশনটি সংযুক্ত করে ব্লকে ঘোষণা করা হয়। প্যারামিটারটি foo
এমন একটি ব্লকে ঘোষিত হয় যা বাইরের ব্লকে বাসা বাঁধে (দেখুন [বেসিক.স্কোপ.ব্লক] / 2 দেখুন , যা স্পষ্টভাবে ল্যাম্বডা পরামিতিগুলিও উল্লেখ করে)। অভ্যন্তরীণ থেকে বাইরের ব্লকগুলিতে দেখার ক্রমটি স্পষ্ট । সুতরাং প্যারামিটারটি নির্বাচন করা উচিত, অর্থাত্ কলঙ্কটি সঠিক।
আপনি যদি ক্যাপচারটি একটি আরম্ভ-ক্যাপচার foo = ""
হিসাবে করেন foo
, তার পরিবর্তে , উত্তরটি পরিষ্কার হবে না। এর কারণ হ'ল ক্যাপচারটি আসলে একটি ঘোষণাকে প্ররোচিত করে যার "ব্লক" দেওয়া হয়নি। আমি এই বিষয়ে মূল চেয়ার বার্তা দিয়েছি, কে জবাব দিয়েছে
এটি 2211 ইস্যু (খুব শীঘ্রই একটি নতুন ইস্যু তালিকা ওপেন -স্ট.ডি.আর.আর্টোগুলি সাইটে উপস্থিত হবে, দুর্ভাগ্যক্রমে বেশ কয়েকটি সমস্যার জন্য কেবল স্থানধারীদের সাথে, যার মধ্যে এটি একটি; আমি এই ফাঁকগুলি পূরণ করার জন্য কঠোর পরিশ্রম করছি মাস শেষে সভা)। সিডব্লুজি আমাদের জানুয়ারির টেলিকনফারেন্সের সময় এটি নিয়ে আলোচনা করেছিল এবং ক্যাপচারের নামটিও যদি প্যারামিটারের নাম হয় তবে প্রোগ্রামটি দুর্নীতিগ্রস্থ করার দিকনির্দেশনা।