람다 식에서 const 참조로 캡처 할 수 있습니까?
예를 들어 아래 표시된 과제가 실패하고 싶습니다.
#include <cstdlib>
#include <vector>
#include <string>
#include <algorithm>
using namespace std;
int main()
{
string strings[] =
{
"hello",
"world"
};
static const size_t num_strings = sizeof(strings)/sizeof(strings[0]);
string best_string = "foo";
for_each( &strings[0], &strings[num_strings], [&best_string](const string& s)
{
best_string = s; // this should fail
}
);
return 0;
}
업데이트 : 이것은 오래된 질문이므로 C ++ 14에 도움이되는 기능이 있으면 업데이트하는 것이 좋습니다. C ++ 14의 확장 기능을 사용하면 const 참조로 비 const 객체를 캡처 할 수 있습니까? ( 2015 년 8 월 )
[&, &best_string](string const s) { ...}
.