<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>김 용묵의 절대공간 - 블로그: C11에서-추가된-R-value-참조자에 달린 최근 댓글/트랙백 목록</title>
		<link>http://moogi.new21.org/tc/</link>
		<description>철도를 명절 때에나 떠오르는 4대 교통수단 중 하나로만 아는 것은, 예수님을 사대성인· 성인군자 중 하나로만 아는 것과 같다.</description>
		<language>ko</language>
		<pubDate>Sat, 16 Apr 2022 03:28:32 +0900</pubDate>
		<generator>Textcube 1.7.8 : Con moto</generator>
		<image>
		<title>김 용묵의 절대공간 - 블로그: C11에서-추가된-R-value-참조자에 달린 최근 댓글/트랙백 목록</title>
		<url>http://moogi.new21.org/tc/attach/1/1404861358.jpg</url>
		<link>http://moogi.new21.org/tc/</link>
		<width>220</width>
		<height>165</height>
		<description>철도를 명절 때에나 떠오르는 4대 교통수단 중 하나로만 아는 것은, 예수님을 사대성인· 성인군자 중 하나로만 아는 것과 같다.</description>
		</image>
		<item>
			<title>Lyn님의 댓글</title>
			<link>http://moogi.new21.org/tc/683#comment3179</link>
			<description>move constructor 만쉐~</description>
			<author>(Lyn)</author>
			<guid>http://moogi.new21.org/tc/683#comment3179</guid>
			<comments>http://moogi.new21.org/tc/683#comment</comments>
			<pubDate>Wed, 16 May 2012 11:06:30 +0900</pubDate>
		</item>
		<item>
			<title>Lyn님의 댓글</title>
			<link>http://moogi.new21.org/tc/683#comment3180</link>
			<description>레퍼런스-&amp;gt;RValue 레퍼런스로 변경해주는 std::move 함수가 추가되었습니다 : )</description>
			<author>(Lyn)</author>
			<guid>http://moogi.new21.org/tc/683#comment3180</guid>
			<comments>http://moogi.new21.org/tc/683#comment</comments>
			<pubDate>Wed, 16 May 2012 11:08:05 +0900</pubDate>
		</item>
		<item>
			<title>아라크넹님의 댓글</title>
			<link>http://moogi.new21.org/tc/683#comment3181</link>
			<description>r-value reference의 또 다른 중요한 사용 용도는 메소드를 다른 객체의 메소드로 forwarding하는 경우가 있습니다. 사실 맨 마지막 예시의 변형이긴 하네요.

struct A { void foo(std::string, std::string&amp;amp;); };
struct B { A a; void foo(std::string, std::string&amp;amp;); };
void B::foo(std::string arg1, std::string&amp;amp; arg2) { a.foo(arg1, arg2); }

이 코드의 경우 B::foo는 A::foo로 forwarding하게 되지만 arg1을 옮기는 과정에서 복사 생성자를 거치게 됩니다. 하지만 B::foo를 다음과 같이 고치면:

void B::foo(std::string&amp;amp;&amp;amp; arg1, std::string&amp;amp; arg2) { a.foo(std::forward&amp;lt;std::string&amp;gt;(arg1), arg2); }

복사 생성자를 거치지 않게 됩니다. std::forward는 r-value를 받았으면 r-value를 반환하고 l-value를 받았으면 l-value를 반환하는 거 빼면 아무 변화도 주지 않는 identity function입니다.

다음 문서를 부분적으로 참고했습니다.
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n2027.html#Perfect_Forwarding
http://cpp-next.com/archive/2009/12/onward-forward/</description>
			<author>(아라크넹)</author>
			<guid>http://moogi.new21.org/tc/683#comment3181</guid>
			<comments>http://moogi.new21.org/tc/683#comment</comments>
			<pubDate>Wed, 16 May 2012 11:55:45 +0900</pubDate>
		</item>
		<item>
			<title>사무엘님의 댓글</title>
			<link>http://moogi.new21.org/tc/683#comment3182</link>
			<description>네, 이동 생성자는 멋진 개념이죠. 그리고 본문에도 그 함수가 언급돼 있습니다. ^^</description>
			<author>(사무엘)</author>
			<guid>http://moogi.new21.org/tc/683#comment3182</guid>
			<comments>http://moogi.new21.org/tc/683#comment</comments>
			<pubDate>Wed, 16 May 2012 15:01:08 +0900</pubDate>
		</item>
		<item>
			<title>사무엘님의 댓글</title>
			<link>http://moogi.new21.org/tc/683#comment3183</link>
			<description>한 문법이 추가되면서 여러 방면의 문제를 한꺼번에 해결할 수 있죠(마치 팔방미인이 된 auto처럼). R-value 참조자도 그런 개념인 것 같습니다.</description>
			<author>(사무엘)</author>
			<guid>http://moogi.new21.org/tc/683#comment3183</guid>
			<comments>http://moogi.new21.org/tc/683#comment</comments>
			<pubDate>Wed, 16 May 2012 15:01:18 +0900</pubDate>
		</item>
		<item>
			<title>Lyn님의 댓글</title>
			<link>http://moogi.new21.org/tc/683#comment3184</link>
			<description>점점 코드가 암호화되어가고있습니다 ㅡㅜ

이제 대입버그도 두군데서 나오겠군요</description>
			<author>(Lyn)</author>
			<guid>http://moogi.new21.org/tc/683#comment3184</guid>
			<comments>http://moogi.new21.org/tc/683#comment</comments>
			<pubDate>Wed, 16 May 2012 15:34:23 +0900</pubDate>
		</item>
		<item>
			<title>김 기윤님의 댓글</title>
			<link>http://moogi.new21.org/tc/683#comment3185</link>
			<description>C++11 스펙에서 봤던 것이긴 한데, 제대로 이해는 못 했었고, 지금도 제대로 이해를 못 했습니다(.....) 단지 좋은거다~ 라는 정도만 이해하고 있을 뿐.. orz..</description>
			<author>(김 기윤)</author>
			<guid>http://moogi.new21.org/tc/683#comment3185</guid>
			<comments>http://moogi.new21.org/tc/683#comment</comments>
			<pubDate>Wed, 16 May 2012 19:59:34 +0900</pubDate>
		</item>
		<item>
			<title>사무엘님의 댓글</title>
			<link>http://moogi.new21.org/tc/683#comment3186</link>
			<description>요즘 스마트폰 때문에 뭐든지 &#039;스마트&#039;해졌다고 그러는데, R-value 참조자는 C++ 언어의 디자인과 C++ 라이브러리의 동작을 좀더 &#039;스마트&#039;하게 개선하는 효과가 있는 듯합니다. ^^
물론 C++은 처음 접하는 사람에게는 갈수록 더 배우기 어려운 복잡한 언어가 돼 가고 있죠.</description>
			<author>(사무엘)</author>
			<guid>http://moogi.new21.org/tc/683#comment3186</guid>
			<comments>http://moogi.new21.org/tc/683#comment</comments>
			<pubDate>Thu, 17 May 2012 10:28:16 +0900</pubDate>
		</item>
		<item>
			<title>Lyn님의 댓글</title>
			<link>http://moogi.new21.org/tc/683#comment3187</link>
			<description>한번쓰고 버릴 데이터를 대입할때 복사가 일어나지 않도록 한다!

라는것만 이해하면 나머진 쉽더라구요.
물론 전 사무엘님보다 능력이 딸려서 거의 1주일을 문서 들여다보고 고민 ㅜㅜ</description>
			<author>(Lyn)</author>
			<guid>http://moogi.new21.org/tc/683#comment3187</guid>
			<comments>http://moogi.new21.org/tc/683#comment</comments>
			<pubDate>Thu, 17 May 2012 11:22:40 +0900</pubDate>
		</item>
		<item>
			<title>주의사신님의 댓글</title>
			<link>http://moogi.new21.org/tc/683#comment3188</link>
			<description>졸업 작품 만들 적에 VC++ 10에 추가된 C++11을 많이 사용했는데, 안 그래도 어려운 C++이 더 어려워지는 느낌을 조금 받기는 했습니다.</description>
			<author>(주의사신)</author>
			<guid>http://moogi.new21.org/tc/683#comment3188</guid>
			<comments>http://moogi.new21.org/tc/683#comment</comments>
			<pubDate>Thu, 17 May 2012 17:12:27 +0900</pubDate>
		</item>
		<item>
			<title>김 기윤님의 댓글</title>
			<link>http://moogi.new21.org/tc/683#comment3189</link>
			<description>오히려 람다가 훨씬 쉬워요 orz..</description>
			<author>(김 기윤)</author>
			<guid>http://moogi.new21.org/tc/683#comment3189</guid>
			<comments>http://moogi.new21.org/tc/683#comment</comments>
			<pubDate>Thu, 17 May 2012 18:29:43 +0900</pubDate>
		</item>
		<item>
			<title>사무엘님의 댓글</title>
			<link>http://moogi.new21.org/tc/683#comment3190</link>
			<description>“나의 C++은 이런 언어가 아니라능!!” 하는 생각이 들죠. ㄲㄲㄲㄲㄲㄲ

static 멤버는 선언뿐만 아니라 정의도 밖에서 반드시 해 줘야 하게 바뀜 (1980년대 말)
템플릿 추가 (1990년대 초중반)
bool, namespace, typename, explicit, *_cast 등 추가 (1990년대 중반)
iostream.h에서 .h가 빠지고, C++ 라이브러리들도 std namespace로 이동 (1990년대 중후반)
export 흑역사
C++11 (2011년)

흠, 이런 역사에 대해서 정리해도 글 한편이 될 것 같네요.</description>
			<author>(사무엘)</author>
			<guid>http://moogi.new21.org/tc/683#comment3190</guid>
			<comments>http://moogi.new21.org/tc/683#comment</comments>
			<pubDate>Fri, 18 May 2012 10:58:28 +0900</pubDate>
		</item>
		<item>
			<title>김재호님의 댓글</title>
			<link>http://moogi.new21.org/tc/683#comment3197</link>
			<description>저는 아라크넹님이 설명한 Perfect forwarding 에서 Perfect라는 단어가 잘 그려지지 않습니다. 마치 영어 시제에서 현재 완료를 말할 때 쓰는 Present Perfect 라는 단어를 접할 때의 맹한 느낌이랄까요.

그나저나 정리를 잘하셔서 글을 아주 잘 쓰셨네요. 긴 글인데도 참 재밌게 읽었습니다.</description>
			<author>(김재호)</author>
			<guid>http://moogi.new21.org/tc/683#comment3197</guid>
			<comments>http://moogi.new21.org/tc/683#comment</comments>
			<pubDate>Tue, 22 May 2012 00:45:38 +0900</pubDate>
		</item>
		<item>
			<title>사무엘님의 댓글</title>
			<link>http://moogi.new21.org/tc/683#comment3200</link>
			<description>재미 있게 읽어 주셔서 고맙습니다. 글 내용이 잘 전달이 됐다니 다행이고요. ^^
저는 정보력이 아라크넹 님 만하지는 못하지만, 제가 확실하게 아는 내용은 최대한 남이 알기도 쉽게 풀이해서 글로 만들려고 늘 노력합니다.
또 얼마 후엔 C++11 관련 글이 올라올 겁니다.</description>
			<author>(사무엘)</author>
			<guid>http://moogi.new21.org/tc/683#comment3200</guid>
			<comments>http://moogi.new21.org/tc/683#comment</comments>
			<pubDate>Tue, 22 May 2012 13:37:51 +0900</pubDate>
		</item>
		<item>
			<title>Lyn님의 댓글</title>
			<link>http://moogi.new21.org/tc/683#comment3206</link>
			<description>다음 표준은 가칭이 C++1y라네요 (이번에도 16진수냐?!)</description>
			<author>(Lyn)</author>
			<guid>http://moogi.new21.org/tc/683#comment3206</guid>
			<comments>http://moogi.new21.org/tc/683#comment</comments>
			<pubDate>Wed, 23 May 2012 13:42:12 +0900</pubDate>
		</item>
	</channel>
</rss>
