boost 공부하는 사람입니다.
boost:ref 를 보는데 함수로 인자를 넘길때
func(int &num) 에 인자를 넘길 때,
num 으로 넘기는 것 하고 boost:ref(num) 하고 차이가 무었인지 궁금합니다.
어차피 두가지 모두 reference 아닌가요. 복사생성자가
둘 다 호출되지 않는 것으로 확인했는데요.
왜 이런 boost API 존재하는지 궁금합니다.
검색하시는게 빠를텐데요...
구글에
> boost:ref difference
검색하면 바로나옵니다.
http://stackoverflow.com/questions/2561145/difference-between-boostref-and-regular-references
요약하면
템플릿 함수를 위해 설계가 되었으며, 템플릿 함수의 인수 value로 넘겨줄 때, 강제로 reference로 넘겨주기 위함
template<typename T> void increase(T x) { ++x; } int x = 0; increase(&x) // x == 0 increase(boost::ref(x))// x == 1
될 것 같네요. 부스트 라이브러리 안깔아놔서 돌려보진 못했습니다.
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
검색하시는게 빠를텐데요...구글에>
검색하시는게 빠를텐데요...
구글에
> boost:ref difference
검색하면 바로나옵니다.
http://stackoverflow.com/questions/2561145/difference-between-boostref-and-regular-references
요약하면
템플릿 함수를 위해 설계가 되었으며, 템플릿 함수의 인수 value로 넘겨줄 때, 강제로 reference로 넘겨주기 위함
될 것 같네요. 부스트 라이브러리 안깔아놔서 돌려보진 못했습니다.
댓글 달기