boost :: ref의 사용에 대해 혼란스러워합니다.값을 취하는 함수에 대한 참조를 전달하기위한 boost :: ref 사용
void f(int x)
{
cout << x<<endl;
x++;
}
int main(int argc, char *argv[])
{
int aaa=2;
f(boost::ref(aaa));
cout << aaa<<endl;
exit(0);
}
함수에 심판을 전달의 사용은 무엇입니까 - 나는 어떤 사람이 다음을 수행 할 것입니다 이유를 이해 해달라고. 나는 항상 값으로 대신 전달할 수 있습니다. 또한 ref가 실제로 전달되지는 않습니다. 위의 경우 main의 aaa 값은 2로 유지됩니다.
정확하게 부스트 리퍼런스가 유용합니까?
이 시나리오에서는 boost :: ref를 사용할 수 있습니까? iterator refernce를 std :: sort 함수에 전달하고 싶다. 일반적으로 정렬은 반복자 복사본에서 작동합니다. - : ref가 참조를 위해 작동하도록 만드시겠습니까? (std :: sort의 변경없이)
오키는 이해하지만 어떻게 작동하는지 설명 할 수 있습니까? 템플릿 void f (_T x) {x ++; } int main (int argc, char * argv []) {int aaa = 2; f > (boost :: ref (aaa)); cout << aaa <> aaa; 출구 (0); } 인쇄 된 값은 3입니다. x 함수가 참조가 된 방법을 이해하지 못합니까? –
Rohit
@ user2161003 :'reference_wrapper' 부분을 명시 적으로 작성하면 (필수는 아닙니다), 자신의 질문에 답했습니다 : 템플릿이 "참조 래퍼"유형 ('ref()'에 의해 반환 됨)으로 인스턴스화됩니다. 이는 랩핑하는 변수에 대한 참조처럼 작용합니다. –
하지만 어떻게? reference_wrapper의 객체에는 ++ 연산자가 없습니다. x ++는 어떻게 작동합니까? – Rohit