1
看起來如果拉姆達一個成員函數中定義和此被捕獲然後內部拉姆達所有類成員可以在不使用此關鍵字訪問,這是我可以做C++在Visual Studio 2013 lambda表達式:捕獲該指針
some_class_field = ....
代替
this->some_class_field = ....
它是便攜式的行爲或具體到Visual Studio?
謝謝。
看起來如果拉姆達一個成員函數中定義和此被捕獲然後內部拉姆達所有類成員可以在不使用此關鍵字訪問,這是我可以做C++在Visual Studio 2013 lambda表達式:捕獲該指針
some_class_field = ....
代替
this->some_class_field = ....
它是便攜式的行爲或具體到Visual Studio?
謝謝。
預計:
§5.1.2條第7款
拉姆達表達的複合語句產生的函數調用操作符, 的函數體(8.4),但名稱查找的目的(3.4),通過使用(* this)(9.3.1), 來確定這個(9.3.2)的類型和值並且將非靜態類成員轉換成類成員訪問表達式,則考慮複合語句在lambda表達式的上下文中。 [例如:
struct S1 {
int x, y;
int operator()(int);
void f() {
[=]()->int {
return operator()(this->x + y); // equivalent to S1::operator()(this->x + (*this).y)
// this has type S1*
};
}
};