코드가 있는데 cygwin 환경에서 빌드 할 때 관련 오류가 발생합니다. [&]
[&]의 의미는 무엇입니까? 이 문제를 어떻게 해결할 수 있습니까? 아니면 문제를 해결하기 위해 교체해야합니까?C++의 연산자 [&]
코드 :
this->func =[&]()
{ in here call other functions }
코드가 있는데 cygwin 환경에서 빌드 할 때 관련 오류가 발생합니다. [&]
[&]의 의미는 무엇입니까? 이 문제를 어떻게 해결할 수 있습니까? 아니면 문제를 해결하기 위해 교체해야합니까?C++의 연산자 [&]
코드 :
this->func =[&]()
{ in here call other functions }
[&]{ /*function calls*/ }
이것은 다른 함수를 호출하는 기능 개체 (폐쇄)를 생성하는 C++ 11 람다 식이다. [&]
은 람다 식을 캡쳐 한 것으로, 클로저는 람다 식 외부의 모든 변수를 참조로 사용할 수 있습니다. 현재 C++ 11 서적이나 람다에 대한 기사를 읽으십시오.
문제를 해결하려면 -std=c++0x
을 컴파일러 인수로 전달하십시오. 작동하지 않는 경우 현재 컴파일러로 업그레이드 (~ 2 년 이상 경과)되거나 함수 개체를 수동으로 만드십시오. 그렇게하는 방법은 lambdas를 이해하고 나면 사소 할 것입니다. 그러나 컴파일하려는 코드가 람다를 사용하는 경우 C++ 11 기능이 아닐 수도 있으므로 컴파일러 업그레이드를 강력히 권장합니다.
[capture-list](arguments){function-body}
구문은 C++ 11 람다이다. 상당히 최근의 컴파일러가 필요하며 아마도 추가 컴파일러 플래그를 전달할 수 있습니다.
ok ... 나는 그것을 시도 할 것이다. 대단히 고맙습니다. – Ana
g ++의 어떤 버전을 사용하고 싶습니까? –
왜 그것이 downvoted인지 모르겠습니다. 운영자에게'[&]'를 잘못 입력하면 인터넷 검색이 도움이되지 않습니다. – MSalters
질문을 약간 형식화했으나 SO 기준에 의해 여전히 "진짜 질문이 아닙니다"라고 인정합니다. 조금 더 많은 컨텍스트와 실제 코드, 정확한 오류 메시지, 컴파일러 버전 등을 제공하여 문제를 해결하십시오. – jrok