{"id":339,"date":"2014-08-12T00:03:27","date_gmt":"2014-08-12T09:03:27","guid":{"rendered":"http:\/\/blog.box.kr\/?p=339"},"modified":"2014-08-12T00:03:27","modified_gmt":"2014-08-12T09:03:27","slug":"c11-%ec%9e%98-%ec%93%b0%eb%a9%b4-%eb%a7%a4%ec%9a%b0-%ed%8e%b8%eb%a6%ac%ed%95%9c-c11%ec%9d%98-%eb%ac%b8%eb%b2%95%eb%93%a4","status":"publish","type":"post","link":"https:\/\/blog.box.kr\/?p=339","title":{"rendered":"[c++11] \uc798 \uc4f0\uba74 \ub9e4\uc6b0 \ud3b8\ub9ac\ud55c C++11\uc758 \ubb38\ubc95\ub4e4"},"content":{"rendered":"<p>C\/C++\uc5b8\uc5b4\ub294 \uc800\uc218\uc900\uae4c\uc9c0 \uc815\ubc00\ud558\uac8c \ub2e4\ub8f0 \uc218 \uc788\ub294 \ubc18\uba74, \ud504\ub85c\uadf8\ub798\uba38\uac00 \uc77c\uc77c\ud788 \uad00\ub9ac\ud574\uc918\uc57c\ud558\ub294 \ubd80\ubd84\uc774 \ub9ce\ub2e4\ub294\uac8c C\/C++\uc5b8\uc5b4\uc5d0 \ub300\ud55c \uc77c\ubc18\uc801\uc778 \uacac\ud574\uc785\ub2c8\ub2e4. \uadf8\ub798\uc11c \uc800\uc218\uc900\uae4c\uc9c0 \uc77c\uc77c\ud788 \uc2e0\uacbd\uc4f0\uc9c0 \uc54a\uc544\ub3c4 \ub418\ub294 \ucfe8\ud55c \uc5b8\uc5b4\ub97c \uac00\uc9c0\uace0 \ub192\uc740 \uc0dd\uc0b0\uc131\uc744 \ucd94\uad6c\ud558\ub294\uac8c \ucd94\uc138\uc774\uae30\ub3c4 \ud569\ub2c8\ub2e4.<br \/>\n.<br \/>\n.<br \/>\n.<br \/>\n\ub9cc, C++\uc758 \uace8\uc218\ube60\ub85c\uc11c C++11\uc744 \ud1b5\ud574 C++\ub85c\ub3c4 \ucda9\ubd84\ud788 \ucfe8\ud558\uace0 \uc0dd\uc0b0\uc131 \ub192\uc740 \ucf54-\ub4dc\ub97c \uc791\uc131\ud560\uc218 \uc788\ub2e4\uace0 \ubcc0\ud638\ub97c \ud574\ubcf4\ub824\uace0 \ud569\ub2c8\ub2e4. Visual Studio 2011, 2012\ub97c \uc0ac\uc6a9\ud558\ub294 \uc0ac\ub78c\uc774\ub77c\uba74 C++11\uc758 \uc5ec\ub7ec \uc2e0 \ubb38\ubc95\uc744 \ub9db\ubcfc\uc218 \uc788\ub294\ub370\uc694, \ub2e4\ub978 \ubc84\uc804 \ucef4\ud30c\uc77c\ub7ec\uc640\uc758 \ud638\ud658\uc131\uc774 \uad73\uc774 \ud544\uc694\ud55c \uacbd\uc6b0\uac00 \uc544\ub2c8\ub77c\uba74 \uc990\uac70\uc774 \uc0ac\uc6a9\ud560 \uc218 \uc788\uc744\uac70\uc5d0\uc694.<\/p>\n<p>1. RValue<br \/>\n\uc6b0\uce21\uac12\uc774\ub77c\uace0 \ud558\uc8e0. \uc194\uc9c1\ud788 \ub9d0\ud574 \ucf54\ub529\uc5d0 \ud3b8\ub9ac\ud568\uc744 \uac00\uc838\ub2e4 \uc8fc\uc9c0\ub294 \uc54a\ub294 \ub140\uc11d\uc774\uace0 \uc774\ud574\ud558\uae30\ub3c4 \uc27d\uc9c0 \uc54a\uc9c0\ub9cc, STL\uc54c\uace0\ub9ac\uc998\uc744 \ube44\ub86f\ud558\uc5ec \uc784\uc2dc\uac1d\uccb4\ub97c \uc0dd\uc131\ud558\uace0 \ud30c\uad34\ud558\ub294 \uc77c\uc774 \uc7a6\uc740 \ucf54\ub4dc\uc5d0\uc11c\ub294 \ud070 \uc131\ub2a5 \ud5a5\uc0c1\uc744 \ubd88\ub7ec\uc62c \uc218 \uc788\ub294 \uac1c\ub150\uc785\ub2c8\ub2e4.<\/p>\n<p>view plaincopy to clipboardprint?<br \/>\nvoid Ex1()<br \/>\n{<br \/>\nstd::vector&lt;SomeClass&gt; vec;<br \/>\nvec.push_back(SomeClass(1, 2, &#8220;3&#8221;));<br \/>\n}<br \/>\n\uc774\ub7f0 \ucf54\ub4dc\uac00 \uc788\ub2e4\uace0 \uce58\uba74, RValue \uac1c\ub150\uc774 \uc5c6\ub358 \uc2dc\uc808\uc5d0\ub294 \uba3c\uc800 SomeClass \uac1d\uccb4\ub97c \uc0dd\uc131\ud558\uace0, \uadf8 \ub2e4\uc74c\uc5d0 \uc778\uc790\ub85c \ub118\uae30\uae30 \uc704\ud574\uc11c \ubcf5\uc0ac\uc0dd\uc131\uc790\ub97c \ud638\ucd9c\ud558\uaca0\uc8e0. \uadf8\ub9ac\uace0 push_back \ud568\uc218 \uc548\uc73c\ub85c \ub118\uc5b4\uac00\uc11c \uc0bd\uc785\ub420\ub54c \ub2e4\uc2dc \ud55c\ubc88 \ubcf5\uc0ac\uac00 \uc77c\uc5b4\ub0a0 \uac81\ub2c8\ub2e4. \uadf8\ub9ac\uace0 push_back \ud568\uc218\ub97c \ube60\uc838\ub098\uc62c\ub54c \uc778\uc790\uac00 \ud30c\uad34\ub418\uace0, push_back \ud568\uc218\ub97c \ube60\uc838\ub098\uc628 \ub2e4\uc74c\uc5d0\ub294 \uc784\uc2dc\ub85c \uc0dd\uc131\ub41c SomeClass \uac1d\uccb4\uac00 \ud30c\uad34\ub429\ub2c8\ub2e4. SomeClass \uac1d\uccb4\ub97c vector\uc5d0 \ucd94\uac00\ud558\uae30 \uc704\ud55c\uac74\ub370, \uc4f8\ub370 \uc5c6\uc774 \uac1d\uccb4\ub97c \ub450 \ubc88\uc774\ub098 \ubcf5\uc0ac\ud558\uace0 \ud30c\uad34\ud588\uc2b5\ub2c8\ub2e4. \uac1d\uccb4\uc548\uc5d0 vector\ub098 \ub610 \ub2e4\ub978 \ucee8\ud14c\uc774\ub108\uac00 \ub4e4\uc5b4\uac00 \uc788\uc5c8\ub2e4\uace0 \uc0dd\uac01\ud558\uba74 \ub0ad\ube44\uac00 \ub9c9\uc2ec\ud558\uaca0\uc8e0&#8230;<\/p>\n<p>\uadf8\ub7f0\ub370 RValue\uac1c\ub150\uc774 \ub3c4\uc785\ub428\uc73c\ub85c \uc778\ud574\uc11c \uc6b0\uce21\uac12(\uc784\uc2dc\ub85c \uc0dd\uc131\ub418\ub294 \uac12\uc774\ub77c\uace0 \uc0dd\uac01\ud558\uba74 \uc27d\uc2b5\ub2c8\ub2e4)\uc740 \ubcf5\uc0ac\uc0dd\uc131\uc790\uac00 \uc544\ub2c8\ub77c \uc774\ub3d9(move)\uc0dd\uc131\uc790\ub97c \ud638\ucd9c\ud558\uac8c \ub429\ub2c8\ub2e4. \uadf8\ub798\uc11c Visual Studio 2011, 2012\uc5d0\uc11c\ub294 \uc774 \ucf54\ub4dc\ub294 \uba3c\uc800 \uc778\uc790\ub85c \uc0ac\uc6a9\ud558\uae30 \uc704\ud574 SomeClass \uac1d\uccb4\ub97c \uc0dd\uc131\ud558\uace0, \uc774\ub3d9\uc0dd\uc131\uc790\ub97c \ud638\ucd9c\ud558\uc5ec \uc778\uc790\ub85c \uc62e\uaca8\uc8fc\uace0 \uadf8 \uac12\uc744 vector\uc548\uc5d0 \uc800\uc7a5\ud569\ub2c8\ub2e4. \ubd88\ud544\uc694\ud558\uac8c \ubcf5\uc0ac\uc0dd\uc131\ub41c \uac1d\uccb4 \uc5c6\uc73c\ub2c8 \ud30c\uad34\ud560 \ud544\uc694\ub3c4 \uc5c6\uad6c\uc694.<\/p>\n<p>2. \ucee8\ud14c\uc774\ub108\uc5d0 emplace \uba54\uc18c\ub4dc \ucd94\uac00<br \/>\n\uc704\uc758 \uc608\uc2dc\ub97c \uacc4\uc18d \uc774\uc5b4\uc11c \ubcf4\uc790\uba74, vec\uc740 \uc5b4\ucc28\ud53c SomeClass\uc758 vector\ub77c\ub294\uac74 \ubed4\ud55c \uc0ac\uc2e4\uc785\ub2c8\ub2e4. \uadf8\ub7f0\ub370 \uc5ec\uae30\uc5d0 \uc0c8\ub85c\uc6b4 SomeClass \uc778\uc2a4\ud134\uc2a4\ub97c \ucd94\uac00\ud558\ub824\uace0 \ud558\uba74 push_back(SomeClass(1, 2, &#8220;3&#8221;)) \ucc98\ub7fc \uadc0\ucc2e\uac8c SomeClass\ub97c \ud0c0\uc774\ud551\ud574\uc57c\ud569\ub2c8\ub2e4. \uadf8\ub7f0\ub370 C++11\uc5d0\uc11c\ub294 \uc774\ub97c \uac04\ud3b8\ud558\uac8c \ud558\ub294 emplace \uba54\uc18c\ub4dc\ub4e4\uc774 \ucd94\uac00\ub418\uc5c8\uc2b5\ub2c8\ub2e4.<\/p>\n<p>view plaincopy to clipboardprint?<br \/>\nvoid Ex2()<br \/>\n{<br \/>\nstd::vector&lt;SomeClass&gt; vec;<br \/>\nvec.push_back(SomeClass(1, 2, &#8220;3&#8221;));<br \/>\nvec.emplace_back(1, 2, &#8220;3&#8221;);<br \/>\n}<br \/>\nemplace_back \ud568\uc218\ub97c \ubcf4\uc138\uc694. \uc0dd\uc131\uc790\ub85c \ub118\uae38 \uc778\uc790\ub97c \uadf8\ub0e5 emplace_back\uc5d0 \ub118\uaca8\uc8fc\uba74 \ub429\ub2c8\ub2e4. \uc774\ub807\uac8c \ud558\uba74 \ucef4\ud30c\uc77c\ub7ec\ub294 vec\uc774 vector&lt;SomeClass&gt; \ub77c\ub294 \uac78 \ubc14\ud0d5\uc73c\ub85c SomeClass\uc758 \uc0dd\uc131\uc790 \uc911\uc5d0\uc11c 1, 2, &#8220;3&#8221;\uc744 \uc778\uc790\ub85c \ubc1b\uc744\uc218 \uc788\ub294 \ub188\uc744 \ucc3e\uc544\uc11c \ub0b4\ubd80\uc5d0\uc11c \uc0dd\uc131\uc2dc\ucf1c\uc90d\ub2c8\ub2e4. \uac00\ubcc0\uc778\uc790 \ud15c\ud50c\ub9bf\uc774\ub77c\ub294 \uc0c8\ub85c\uc6b4 \ubb38\ubc95 \ub54c\ubb38\uc5d0 \uac00\ub2a5\ud574\uc9c4 \uac83\uc774\uc9c0\uc694.<\/p>\n<p>\uac8c\ub2e4\uac00 \uc774 \ud568\uc218\uc758 \uc88b\uc740 \uc810\uc740 push_back \ubcf4\ub2e4 \ub354 \ud6a8\uc728\uc801\uc774\ub77c\ub294 \uac83\uc785\ub2c8\ub2e4. RValue\uc744 \uc774\uc6a9\ud55c push_back\uc744 \ud638\ucd9c\ud560 \uacbd\uc6b0\uc5d0\ub294 \uc0dd\uc131\uc790 \ud638\ucd9c \ub4a4\uc5d0 \uc774\ub3d9\uc0dd\uc131\uc790\uac00 \ud638\ucd9c\ub418\uc9c0\ub9cc, emplace_back\uc744 \uc774\uc6a9\ud560 \uacbd\uc6b0\uc5d0\ub294 \uc544\uc608 \uc774 \ud568\uc218 \ub0b4\ubd80\uc5d0\uc11c \uc778\uc2a4\ud134\uc2a4\ub97c \uc0dd\uc131\ud558\ubbc0\ub85c \uc774\ub3d9\uc0dd\uc131\uc790\uac00 \uc544\uc608 \ud638\ucd9c\ub418\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.<\/p>\n<p>3. auto<br \/>\nC++\uc758 STL\uc740 \ucc38 \uac15\ub825\ud558\uc9c0\ub9cc&#8230; iterator\ub97c \uc4f0\uae30\uc704\ud574 \ubcc0\uc218\ub97c \uc120\uc5b8\ud558\ub294\uac74 \uadf8\ub3d9\uc548 \ucc38\uc73c\ub85c \uace0\ub41c \uc77c\uc774\uc5c8\uc2b5\ub2c8\ub2e4. iterator\uc758 \ud0c0\uc785 \ub54c\ubb38\uc774\uc9c0\uc694.<\/p>\n<p>view plaincopy to clipboardprint?<br \/>\nvoid Ex3()<br \/>\n{<br \/>\nstd::vector&lt;SomeClass&gt; vec;<br \/>\nfor(std::vector&lt;SomeClass&gt;::iterator it = vec.begin(); it != end(); ++it)<br \/>\n{<br \/>\n\/\/something<br \/>\n}<br \/>\n}<br \/>\niterator\ub97c \uc774\uc6a9\ud574 \ucee8\ud14c\uc774\ub108\ub97c \uc21c\ud68c\ud558\ub294 \uc804\ud615\uc801\uc778 \uc608\uc785\ub2c8\ub2e4. \uadfc\ub370 std::vector&lt;SomeClass&gt;::iterator \ud0c0\uc774\ud551\ud558\ub294\uac70 \ub108\ubb34 \uadc0\ucc2e\uc2b5\ub2c8\ub2e4. IDE\uac00 \uc790\ub3d9\uc644\uc131 \uae30\ub2a5 \uc9c0\uc6d0\ud574\uc900\ub2e4\uace0 \ud574\ub3c4 \ud0c0\uc774\ud551\ud560\uac74 \ud0c0\uc774\ud551\ud574\uc57c\ub418\uc9c0\uc694. \ub300\uc548\uc73c\ub85c typedef\ub97c \uc774\uc6a9\ud574 \uc9e7\uac8c \uc774\ub984\ubd99\uc5ec\uc11c \uc4f0\ub294 \ubc29\ubc95\ub3c4 \uc788\uc9c0\ub9cc, \uc774\uac83\ub3c4 \ucee8\ud14c\uc774\ub108 \ud0c0\uc785\ubcc4\ub85c \ub2e4 \ub530\ub85c \ub9cc\ub4e4\uc5b4\uc918\uc57c\ud558\ub294 \uac70\ub77c\uc11c \uadc0\ucc2e\uae30\ub294 \ub9c8\ucc2c\uac00\uc9c0\uc9c0\uc694. \uadf8\ub798\uc11c \ub108\ubb34 \uc9dc\uc99d\uc774 \ub0ac\ub294\ub370&#8230;<br \/>\nC++11\uc5d0\uc11c auto\uac00 \ucd94\uac00\ub418\uc5c8\uc2b5\ub2c8\ub2e4. \uc774\ub294 \ubcc0\uc218 \uc120\uc5b8\uc774 \ud0c0\uc785\uc744 \uc790\ub3d9\uc73c\ub85c \ucd94\ub860\ud558\uac8c \ud574\uc8fc\ub294 \uc308\ubc15\ud55c \uae30\ub2a5\uc785\ub2c8\ub2e4. \uc5b4\ucc28\ud53c \ubcc0\uc218 \ucd08\uae30\ud654 \uac12\uc744 \ubcf4\uba74 \ubb34\uc2a8 \ud0c0\uc785\uc778\uc9c0 \uc54c\uc218 \uc788\uae30 \ub54c\ubb38\uc5d0, \uad73\uc774 \uc800\ub7f0 \ubcf5\uc7a1\ud55c \ud0c0\uc785\uc744 \uba85\uc2dc\ud558\uc9c0 \uc54a\ub3c4\ub85d \ud574\uc8fc\ub294\uac70\uc8e0. \uc774 \ucf54\ub4dc\ub97c \uc774\uc6a9\ud558\uba74 \uc544\ub798\uc640 \uac19\uc774 \uac04\ub2e8\ud558\uac8c \ucf54\ub4dc\ub97c \uc4f8 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<br \/>\nview plaincopy to clipboardprint?<br \/>\nvoid Ex4()<br \/>\n{<br \/>\nstd::vector&lt;SomeClass&gt; vec;<br \/>\nfor(auto it = vec.begin(); it != end(); ++it)<br \/>\n{<br \/>\n\/\/something<br \/>\n}<br \/>\n}<br \/>\n\ucfe8\ud558\uc9c0 \uc54a\ub098\uc694? \ubb3c\ub860 \uc774 \uae30\ub2a5\uc740 \ucd08\uae30\uac12\uc744 \uc9c0\uc815\ud558\ub294 \ubcc0\uc218 \uc120\uc5b8\uc5d0\ub9cc \uc0ac\uc6a9\uc774 \uac00\ub2a5\ud569\ub2c8\ub2e4.<\/p>\n<p>4. ranged for loop<br \/>\n\ud558\uc9c0\ub9cc \uc704\uc758 for\ubb38\ub3c4 \uadc0\ucc2e\uae30\ub294 \ub9c8\ucc2c\uac00\uc9c0\uc9c0\uc694. \ud558\uc9c0\ub9cc \ubc94\uc704\uae30\ubc18 for\ubb38\uc774 \ucd9c\ub3d9\ud558\uba74 \uc5b4\ub5bb\uac8c \ub420\uae4c\uc694<\/p>\n<p>view plaincopy to clipboardprint?<br \/>\nvoid Ex5()<br \/>\n{<br \/>\nstd::vector&lt;SomeClass&gt; vec;<br \/>\nfor(auto it : vec)<br \/>\n{<br \/>\n\/\/something<br \/>\n}<br \/>\n}<br \/>\n\ub9e4\uc6b0 \ucfe8\ud558\ub124\uc694. \ucee8\ud14c\uc774\ub108 \uc21c\ud68c\ub294 \ub298 begin()\uc5d0\uc11c \uc2dc\uc791\ud574\uc11c end()\uae4c\uc9c0 ++it\ub85c \ubed4\ud558\uac8c \uc774\ub8e8\uc5b4\uc9c0\ub2c8\uae50, \uadf8\uac78 \uc544\uc608 \ud328\ud134\ud654 \uc2dc\ucf1c\uc11c for(auto it : vec)\ucc98\ub7fc \uc4f8\uc218 \uc788\uac8c \ud574\uc900\uac81\ub2c8\ub2e4. \ub2e8 \uc5ec\uae30\uc11c it\ub294 \uac12\uc73c\ub85c \ubcf5\uc0ac\ub41c \uac83\uc73c\ub85c it\uac12\uc744 \uc544\ubb34\ub9ac \ubc14\uafbc\ub2e4\uace0\ud574\ub3c4 vec\uc548\uc758 \uac12\uc740 \ubabb \ubc14\uafc9\ub2c8\ub2e4. vec\ub97c \uc218\uc815\ud558\uace0 \uc2f6\uc73c\uba74? \ub808\ud37c\ub7f0\uc2a4\ub97c \uc0ac\uc6a9\ud574\uc11c for(auto&amp; it : vec)\uc73c\ub85c \uc4f0\uba74 \ub429\ub2c8\ub2e4. (\uac1c\uc778\uc801\uc73c\ub85c \uc81c\uc77c \ub9c8\uc74c\uc5d0 \ub4dc\ub294 \ubb38\ubc95\uc785\ub2c8\ub2e4. \ub108\ubb34 \ud3b8\ud574\uc694. \ucee8\ud14c\uc774\ub108\ub9cc \ubcf4\uba74 \uadf8\ub0e5 \ub9c9&#8230; \uc21c\ud68c\ud558\uace0 \uc2f6\uc5b4\uc9d1\ub2c8\ub2e4)<br \/>\n* \uc544\ub9c8 \uc774\ub140\uc11d\uc740 VS2012\uc5d0\uc11c\ubd80\ud130\ub9cc \uc0ac\uc6a9\uac00\ub2a5\ud560 \uac70\uc5d0\uc694.<\/p>\n<p>5. lambda expression<br \/>\n\uc815\ub9d0 \ub300\ubc15\uc778 \uae30\ub2a5\uc774\uc9c0\uc694. \uc774\uc81c \uc775\uba85\ud568\uc218, \ud074\ub85c\uc838\ub97c c#\uc774\ub098 \ud30c\uc774\uc36c, \uc790\ubc14\uc2a4\ud06c\ub9bd\ud2b8 \ub9c8\ub0e5 \uc4f1\uc4f1 \uc791\uc131\ud558\uace0 \uc4f8\uc218 \uc788\uc2b5\ub2c8\ub2e4. \ubb3c\ub860 \uc608\uc804\uc5d0\ub3c4 functor \uae30\ub2a5\uc740 \uc81c\uacf5\ub418\uc5c8\uc2b5\ub2c8\ub2e4. STL\uc758 \uc54c\uace0\ub9ac\uc998\uc740 \ube44\uad50\ud568\uc218 \ub4f1\uc5d0 functor\ub97c \uc4f8\uc218 \uc788\uac8c \uc9c0\uc6d0\ud588\uc5c8\uc9c0\uc694. \uadf8\ub798\uc11c \uc61b\ub0a0\uc5d0\ub294 \uc774\ub7f0 \ucf54\ub4dc\ub97c \uc37c\uc5b4\uc694.<\/p>\n<p>view plaincopy to clipboardprint?<br \/>\nvoid Ex6()<br \/>\n{<br \/>\nclass Compare<br \/>\n{<br \/>\npublic:<br \/>\nbool operator()(const SomeClass&amp; o1, const SomeClass&amp; o2) const<br \/>\n{<br \/>\n\/\/ compare function<br \/>\n}<br \/>\n};<br \/>\nstd::vector&lt;SomeClass&gt; vec;<br \/>\nstd::sort(vec.begin(), vec.end(), Compare());<br \/>\n}<br \/>\n\uadfc\ub370 \ube44\uad50\ud568\uc218\ub97c \ub9cc\ub4e4\uae30 \uc704\ud574\uc11c\ub294 \uadc0\ucc2e\uac8c\ub3c4 \uc0c8\ub85c \ud074\ub798\uc2a4\ub97c \uc815\uc758\ud558\uace0 \uadf8 \uc548\uc5d0 \uc5f0\uc0b0\uc790\ub85c \ube44\uad50 \ud568\uc218\ub97c \uc815\uc758\ud55c \ub2e4\uc74c, \uadf8 \ud074\ub798\uc2a4\uc758 \uc778\uc2a4\ud134\uc2a4\ub97c \ub118\uae30\ub294 \ubc29\uc2dd\uc744 \uc0ac\uc6a9\ud574\uc57c\ub418\uc5c8\uc8e0. \uc774\uac8c \ub108\ubb34 \uadc0\ucc2e\uc544\uc11c \uc815\ub82c\uc774 \ud558\uae30 \uc2eb\uc5c8\uc5b4\uc694&#8230; \uc77c\uc77c\ud788 \ud074\ub798\uc2a4 \uc815\uc758\ud558\ub294\uac8c \uadc0\ucc2e\uc740 \uc0ac\ub78c\ub4e4\uc744 \uc704\ud574\uc11c &lt;functional&gt; \ud5e4\ub354\uc5d0, bind, bind_1st, less \ub4f1\ub4f1\uc758 \ud15c\ud50c\ub9bf\uc774 \uc788\uc5b4\uc11c \uc774\ub97c \uc870\ud569\ud574\uc11c functor\ub97c \ub9cc\ub4dc\ub294\uac8c \uac00\ub2a5\ud558\uae34 \ud588\uc9c0\ub9cc \uc9c1\uad00\uc801\uc774\uc9c0 \ubabb\ud574\uc11c \uc368\uba39\uae30\uac00 \ub108\ubb34 \ud798\ub4e4\uc5c8\uc8e0.<\/p>\n<p>\uadf8\ub7f0\ub370 \uc774\uc81c\ub294 lambda expression\uc774 \uc0ac\uc6a9\uac00\ub2a5\ud558\ub2c8 \ub2e4\uc74c\uacfc \uac19\uc774 \uc4f8\uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p>view plaincopy to clipboardprint?<br \/>\nvoid Ex6()<br \/>\n{<br \/>\nstd::vector&lt;SomeClass&gt; vec;<br \/>\nstd::sort(vec.begin(), vec.end(), [](const SomeClass&amp; o1, const SomeClass&amp; o2)<br \/>\n{<br \/>\n\/\/ compare function<br \/>\n});<br \/>\n}<br \/>\n\uc544\uc544.. \uc791\uace0 \uc544\ub984\ub2e4\uc6cc\uc694. \ub78c\ub2e4 \ud45c\ud604\uc2dd\uc5d0\uc11c\ub294 \uad73\uc774 \ub9ac\ud134 \ud0c0\uc785\uc744 \ubc1d\ud788\uc9c0 \uc54a\uc544\ub3c4 \ub429\ub2c8\ub2e4. \uc65c\ub0d0\uba74 \ucef4\ud30c\uc77c\ub7ec\uac00 return \ubb38\uc5d0 \ub4e4\uc5b4\uac00\ub294 \uac12\uc744 \ubcf4\uace0 \uc54c\uc544\uc11c \ucd94\ub860\ud574\uc8fc\ub2c8\uae4c\uc694. \uadf8\ub7f0\ub370\ub3c4 \uad73\uc774 \ud0c0\uc785\uc744 \ubc1d\ud788\uace0 \uc2f6\ub2e4\uace0 \ud558\uc2dc\uba74<br \/>\n[](const SomeClass&amp; o1, const SomeClass&amp; o2) -&gt; bool {&#8230;} \uc774\ub807\uac8c \uc791\uc131\ud558\uc2dc\uba74 \ub429\ub2c8\ub2e4<br \/>\n\uc5ec\uae30\uc11c -&gt; \uc694 \ubb38\ubc95\ub3c4 C++11\uc5d0\uc11c \uc0c8\ub85c \ucd94\uac00\ub41c \uac70\uc5d0\uc694. \ub9ac\ud134 \ud0c0\uc785\uc744 \ud6c4\ubc29\uc5d0\uc11c \uc120\uc5b8\ud560 \uc218 \uc788\uac8c \ud574\uc90d\ub2c8\ub2e4. (\uc804 \uc544\uc9c1\uc740 \uc720\uc6a9\ud558\uac8c \uc4f4 \uc801\uc774 \ubcc4\ub85c \uc5c6\uc5b4\uc11c \uc544\uc9c1 \uc560\ucc29\uc774 \uac00\uc9c0\ub294 \uc54a\ub124\uc694)<br \/>\n\uac8c\ub2e4\uac00 [] \uc548\uc5d0 \ucea1\uccd0\ud560 \ubcc0\uc218\ub97c \ub098\uc5f4\ud568\uc73c\ub85c\uc368, \ub78c\ub2e4 \ud568\uc218 \ub0b4\uc5d0\uc11c \uc678\ubd80 \ubcc0\uc218\ub97c \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4! =\ub97c \ub123\uc73c\uba74 \ubaa8\ub4e0 \ubcc0\uc218\ub97c \uac12 \ubcf5\uc0ac\ub85c \ucea1\uccd0\ud558\uace0, &amp;\ub97c \ub123\uc73c\uba74 \ubaa8\ub4e0 \ubcc0\uc218\ub97c \ub808\ud37c\ub7f0\uc2a4\ub85c \ucea1\uccd0\ud569\ub2c8\ub2e4. (\ub2e8 \ub808\ud37c\ub7f0\uc2a4\ub85c \ucea1\uccd0\ud55c\ub2e4\uace0 \ud574\uc11c \uc678\ubd80\uc758 \uc9c0\uc5ed\ubcc0\uc218\uac00 \ud074\ub85c\uc838\ub85c \ub4e4\uc5b4\uc624\uace0 \uadf8\ub7ec\uc9c0\ub294 \uc54a\uc544\uc694. \uc989, \uc9c0\uc5ed\ubcc0\uc218\uac00 \ud30c\uad34\ub418\uba74, \ucea1\uccd0\ud55c \ub808\ud37c\ub7f0\uc2a4\ub294 \uc2dc\ub9dd\ud558\uac8c \ub429\ub2c8\ub2e4. \uc774\ub97c \ub9c9\uae30 \uc704\ud574\uc11c\ub294 shared_ptr\ub97c \uc4f0\uba74 \ub429\ub2c8\ub2e4.)<\/p>\n<p>6. std::function<br \/>\n\uac00\ubcc0\uc778\uc790 \ud15c\ud50c\ub9bf\uc774 \uac00\ub2a5\ud574\uc9c0\uba74\uc11c \uc774\uc81c \uc784\uc758\uc758 \ud568\uc218 \ud0c0\uc785\uc744 \ub2f4\ub294 \ud0c0\uc785\uc774 \ub4f1\uc7a5\ud558\uac8c \ub418\uc5c8\uc2b5\ub2c8\ub2e4. \uc774\ub85c\uc368 \ud568\uc218\uc801 \ud504\ub85c\uadf8\ub798\ubc0d\uc774 \ud6e8\uc52c \uc26c\uc6cc\uc84c\uc8e0.<\/p>\n<p>view plaincopy to clipboardprint?<br \/>\nvoid Ex7()<br \/>\n{<br \/>\nstd::function&lt;int(int, int)&gt; op[] =<br \/>\n{<br \/>\n[](int a, int b) {return a+b;},<br \/>\n[](int a, int b) {return a-b;},<br \/>\n[](int a, int b) {return a*b;},<br \/>\n[](int a, int b) {return a\/b;},<br \/>\n[someVar](int a, int b) {return a+b+someVar;},<br \/>\n};<br \/>\nfor(auto f : op)<br \/>\n{<br \/>\nop(1, 1);<br \/>\n}<br \/>\n}<br \/>\nint \ub450 \uac1c\ub97c \ubc1b\uc544\uc11c int\ub97c \ub9ac\ud134\ud558\ub294 \ud568\uc218\ub4e4\uc744 \ubaa8\uc544\ub193\ub294 op \ubc30\uc5f4\uc744 \ub9cc\ub4e4\uc5c8\uc2b5\ub2c8\ub2e4. \uc774\ub807\uac8c \ud568\uc218\ub97c \uc800\uc7a5\ud574\ub480\ub2e4\uac00, \ud544\uc694\ud560\ub54c \ud638\ucd9c\ud574\uc904 \uc218 \uc788\uc9c0\uc694. std::function&lt;int(int, int)&gt;\uac00 \uc4f0\uae30\uc5d0 \ub108\ubb34 \uae38\ub2e4\uba74 auto \uc4f0\uba74\ub429\ub2c8\ub2e4. \uac8c\ub2e4\uac00 \ucea1\uccd0\ub85c \uc678\ubd80 \ubcc0\uc218\ub97c \uc800\uc7a5\ud558\ub294 \uac83\ub3c4 \uc790\uc720\ub85c\uc6b0\ub2c8 \uadf8 \uae30\ub2a5\uc740 \ub9c9\uac15\ud558\ub2e4\uace0 \ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc598\ub124\ub4e4\uc740 \ud2b9\ud788 thread \uc640 \ud568\uaed8 \uc0ac\uc6a9\ud558\uba74 \ub354\uc6b1 \ud3b8\ub9ac\ud574\uc694.<br \/>\n(\uc774 \uc608\uc81c\ub294 std::function&lt;int(int, int)&gt;\ub97c auto\ub85c \ubc14\uafb8\uba74 \ud604\uc7ac c++11 \ucef4\ud30c\uc77c\ub7ec\uc5d0\uc11c \uc791\ub3d9\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. \uc65c\uc778\uc9c0\ub294 \ubaa8\ub974\uaca0\uc9c0\ub9cc, \ucd08\uae30\ud654\ub9ac\uc2a4\ud2b8\uac00 \ud0c0\uc785\ucd94\ub860\ud558\ub294\ub370 \ubc29\ud574\uac00 \ub418\ub294\ub4ef \ud569\ub2c8\ub2e4.)<\/p>\n<p>7. nullptr<br \/>\n\ubb50\uac00 \ud3b8\ud574\uc9c4\uac70\ub0d0? \uc2f6\uc740 \uae30\ub2a5\uc774\uae34 \ud558\uc9c0\ub9cc, \ud3ec\uc778\ud130\ubcc0\uc218\ub97c NULL\uc774\ub098 0\uc774 \uc544\ub2c8\ub77c nullptr\ub85c \ucd08\uae30\ud654\ud55c\ub2e4\ub294 \uc810\uc5d0\uc11c \ud0c0\uc785 \uac80\uc0ac\uac00 \uc870\uae08 \ub354 \uac15\ub825\ud574\uc84c\ub2e4\uace0 \ud560\uc218 \uc788\uc9c0\uc694. \uadf8\ub9ac\uace0 NULL\uc774\ub098 0\uc744 \uc4f0\uba74 \uc0c9\uae54\uc774 \uac80\uc5b4\uc11c \ubcf4\uae30 \ubbf8\uc6b4\ub370, nullptr\ub294 \ud0a4\uc6cc\ub4dc\ub2e4 \ubcf4\ub2c8 \ud30c\ub797\uac8c \ubcf4\uc5ec\uc11c \uadf8\ub0e5 \ubcf4\uae30\uc5d0\ub3c4 \uc88b\uc2b5\ub2c8\ub2e4. (&#8230;)<\/p>\n<p>8. enum class<br \/>\n\uae30\uc874\uc758 enum\uc758 \ubb38\uc81c\uc810\uc774\ub77c\uace0 \ud558\uba74 enum\uc740 \ubcc4\ub3c4\uc758 \uc774\ub984\uacf5\uac04\uc744 \uac00\uc9c0\uc9c0 \uc54a\ub294\ub2e4\ub294 \uac83\uc774\ub77c\uace0 \ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774\uac8c \uc65c \ubb38\uc81c\uac00 \ub418\ub0d0\ud558\uba74, enum\uc744 \uc5ec\ub7ec\uac1c \uc4f0\ub2e4\ubcf4\uba74 \ud55c \ucabd\uc5d0\uc11c \uc4f0\ub294 \uc18d\uc131\uc774\ub984\uc744 \ub2e4\ub978\ucabd\uc5d0\uc11c\ub3c4 \uc4f0\ub294 \uacbd\uc6b0\uac00 \uc655\uc655 \ubc1c\uc0dd\ud55c\ub2e4\ub294 \uac70\uc8e0. \uc774\ub807\uac8c \ub418\uba74 \ucef4\ud30c\uc77c\ub7ec\ub294 \uc2dd\ubcc4\uc790\uac00 \uc774 enum\uc5d0 \uc18d\ud55c \uac83\uc778\uc9c0 \uc800 enum\uc5d0 \uc18d\ud55c\uac83\uc778\uc9c0 \uc54c\uc218\uac00 \uc5c6\uc2b5\ub2c8\ub2e4. \uadf8\ub798\uc11c \uc774\ub97c \ubc29\uc9c0\ud558\uae30 \uc704\ud574\uc11c\ub294 enum\uc758 \uc18d\uc131\uc774\ub984\ub4e4\uc744 \uacb9\uce58\uc9c0 \uc54a\uac8c \uae38\uace0 \ud2b9\ubcc4\ud558\uac8c \uc9d3\uac70\ub098 \ubcc4\ub3c4\uc758 name space\ub97c \uc8fc\ub294 \uac70\uc8e0.<br \/>\n\uadf8\ub7f0\ub370 \uc544\uc608 enum class\ub97c \ub3c4\uc785\ud568\uc73c\ub85c\uc368 \uc560\ucd08\uc5d0 enum \uc18d\uc131\ub4e4\uc774 \ubcc4\ub3c4\uc758 \uc774\ub984\uacf5\uac04\uc744 \uac00\uc9c0\uac8c \ud588\uc5b4\uc694. \uadf8\ub798\uc11c \uc774\uc81c enum \uc18d\uc131 \uc774\ub984\ub4e4\uc744 \uc9e7\uace0 \uc544\ub984\ub2f5\uac8c \uc9c0\uc744\uc218 \uc788\uac8c \ub418\uc5c8\uc2b5\ub2c8\ub2e4.<\/p>\n<p>9. \ud5a5\uc0c1\ub41c \uba54\ubaa8\ub9ac \uad00\ub9ac<br \/>\nC++ \ud504\ub85c\uadf8\ub798\uba38\uc758 \uace0\ucda9 \uc911 \ud558\ub098\uac00 \uba54\ubaa8\ub9ac \uad00\ub9ac\ud558\ub294 \uac83\uc778\ub370\uc694, \uc774\uc81c\ub294 \uba54\ubaa8\ub9ac \uad00\ub9ac\uac00 \ud6e8\uc52c \uc218\uc6d4\ud574\uc84c\uc2b5\ub2c8\ub2e4. \uc608\uc804\uae4c\uc9c0\ub294 boost \ub77c\uc774\ube0c\ub7ec\ub9ac\ub85c \uc81c\uacf5\ub418\ub358 \ub808\ud37c\ub7f0\uc2a4 \uce74\uc6b4\ud305\uc744 \uc9c0\uc6d0\ud558\ub294 shared_ptr\uc774\ub77c\ub358\uc9c0 shared_ptr\uc5d0 \uae30\uc0dd\ud574\uc11c \uc0ac\ub294 weak_ptr, \ud55c \ub188\ub9cc \uc18c\uc720\uad8c\uc744 \uac00\uc9c8 \uc218 \uc788\ub294 unique_ptr \uc774 \ud45c\uc900\uc73c\ub85c \uc81c\uacf5\ub429\ub2c8\ub2e4. &lt;memory&gt; \ud5e4\ub354\uc5d0 \ub4e4\uc5b4\uac00 \uc788\uc8e0. \ubb3c\ub860 \uc2a4\ub9c8\ud2b8 \ud3ec\uc778\ud130\ub9cc \uc4f4\ub2e4\uace0 \uba54\ubaa8\ub9ac \uad00\ub9ac\uac00 \ub2e4 \ub418\ub294\uac83\uc740 \uc544\ub2c8\uc9c0\ub9cc, \ub9e4\uc6b0 \ud3b8\ub9ac\ud574\uc9c0\ub294 \uac83\uc740 \uc0ac\uc2e4\uc774\uc9c0\uc694.<\/p>\n<p>view plaincopy to clipboardprint?<br \/>\nvoid Ex8()<br \/>\n{<br \/>\nstd::shared_ptr&lt;SomeClass&gt; ptr1 = std::shared_ptr&lt;SomeClass&gt;(new SomeClass(1, 2, &#8220;3&#8221;)); \/\/ 1<br \/>\nauto ptr2 = std::shared_ptr&lt;SomeClass&gt;(new SomeClass(1, 2, &#8220;3&#8221;)); \/\/ 2<br \/>\nauto ptr3 = std::make_shared&lt;SomeClass&gt;(1, 2, &#8220;3&#8221;);<br \/>\n}<br \/>\n\uadfc\ub370 shared_ptr \uc4f8\ub54c \uadc0\ucc2e\ub358 \uc810\uc740 \uc0dd\uc131\ud558\ub294 \ucf54\ub4dc\uac00 \ucc38&#8230; \uae38\ub2e4\ub294 \uac70\uc600\uc8e0. 1\ubc88 \uc8fc\uc11d\uc774 \uc77c\ubc18\uc801\uc73c\ub85c shared_ptr \ub97c \uc0dd\uc131\ud560 \ub54c \uc4f0\ub294 \ucf54\ub4dc\uc785\ub2c8\ub2e4. auto\ub97c \uc774\uc6a9\ud574\uc11c \uc904\uc778\ub2e4\uace0 \ud574\ub3c4 2\ubc88 \uc8fc\uc11d \uc815\ub3c4\uac00 \ucd5c\ub300\uc8e0. \ud558\uc9c0\ub9cc C++11\uc5d0\uc11c \uac00\ubcc0\uc778\uc790 \ud15c\ud50c\ub9bf\uc774 \uc9c0\uc6d0\ub418\uba74 make_shared\uac00 \uc0dd\uaca8\ub0ac\uc2b5\ub2c8\ub2e4. \uc774\uc81c make_shared \uc548\uc5d0 \uc0dd\uc131\uc790\ub85c \ub123\uc5b4\uc8fc\ub358 \uc778\uc790\ub97c \ub123\uc74c\uc73c\ub85c\uc368 \uc27d\uac8c shared_ptr\ub97c \uc0dd\uc131\ud560 \uc218 \uc788\uc8e0. (\uc0ac\ub791\ud558\ub294 \uae30\ub2a5\uc785\ub2c8\ub2e4\u314e\u314e)<\/p>\n<p>\uadfc\ub370 shared_ptr\ub97c \uc0ac\uc6a9\ud560 \ub54c \ubb38\uc81c\uc810\uc740 \uadf8\ub0e5 \ud3ec\uc778\ud130\ub97c \uc0ac\uc6a9\ud560\ub54c\ub294 \ub2e4\ub978 \ud3ec\uc778\ud130 \ud0c0\uc785\uc73c\ub85c\uc758 \uce90\uc2a4\ud305\uc774 \uc6a9\uc774\ud588\ub294\ub370, shared_ptr\uc740 \uadf8\ub807\uc9c0 \uc54a\ub2e4\ub294 \uac83\uc774\uc8e0. \uc774\ub97c \uc704\ud574\uc11c ((AnotherClass*)(ptr.get())) \uc640 \uac19\uc774 \uac15\uc81c\ub85c \ud3ec\uc778\ud130\ub97c \uc5bb\uc5b4\uc11c \uce90\uc2a4\ud305\uc744 \ud574\uc904 \uc218 \uc788\uc9c0\ub9cc \uc804\ud600 C++\ub2f5\uc9c0 \ubabb\ud55c \ucf54\ub4dc\uc774\uc8e0. \uadf8\ub798\uc11c static_cast, dynamic_cast, const_cast\uc5d0 \ud574\ub2f9\ud558\ub294 static_pointer_cast, dynamic_pointer_cast, const_pointer_cast\uac00 \ucd94\uac00\ub418\uc5c8\uc2b5\ub2c8\ub2e4. \uc774\ub85c\uc368 dynamic_pointer_cast&lt;AnotherClass&gt;(ptr)\uc744 \ud638\ucd9c\ud568\uc73c\ub85c\uc368 \uc548\uc804\ud558\uace0\ub3c4 \ud3b8\ud55c \uc2a4\ub9c8\ud2b8 \ud3ec\uc778\ud130 \uce90\uc2a4\ud305\uc774 \uac00\ub2a5\ud574\uc84c\uc2b5\ub2c8\ub2e4. (\uc5b4\uc9f8 \ucf54\ub4dc \uae38\uc774\ub294 \uc880 \ub298\uc5b4\ub09c\uac70 \uac19\ub2e4&#8230;?\u314b \u3160\u3160)<\/p>\n<p>10. \uc815\uaddc\ud45c\ud604\uc2dd \ub77c\uc774\ube0c\ub7ec\ub9ac<br \/>\n\uae84\uc545! \uc774\uc81c C++\ud45c\uc900\uc5d0 \uc815\uaddc\ud45c\ud604\uc2dd\uc774 \ub4e4\uc5b4\uac14\uc2b5\ub2c8\ub2e4. std::regex, std::wregex\ub97c \uc774\uc6a9\ud574\uc11c \uc27d\uac8c \uc815\uaddc\ud45c\ud604\uc2dd\uc744 \uc0dd\uc131\ud560 \uc218 \uc788\uad6c\uc694, \uc774\ub97c \uc774\uc6a9\ud574 match, search, replace\ub97c \uc27d\uac8c \ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. &lt;regex&gt; \ud5e4\ub354\uc5d0 \ub4e4\uc5b4\uac00 \uc788\uc5b4\uc694.<\/p>\n<p>11. Thread Support Library<br \/>\n\uae30\uc874\uc758 C\/C++\uc758 \uc2a4\ub808\ub4dc \uc0dd\uc131\uc740 \ub2e4\ubd84\ud788 OS \uc885\uc18d\uc801\uc774\uc5c8\uc2b5\ub2c8\ub2e4. \uc6b4\uc601\uccb4\uc81c\uac00 \uc81c\uacf5\ud558\ub294 \ud568\uc218\ub97c \ud638\ucd9c\ud574 \uc2a4\ub808\ub4dc\ub97c \uc0dd\uc131\ud558\uace0 \uc870\uc791\ud558\ub294 \ubc29\ubc95\uc774\uc5c8\uae30\uc5d0 \uc774\uc2dd\ud558\uae30\uac00 \uc880 \ub9ce\uc774 \uadc0\ucc2e\uc558\uace0, API\uac00 c\uae30\ubc18\uc774\ub2e4\ubcf4\ub2c8, c++\ucf54\ub4dc\ub97c \uc4f0\uae30\uc5d0\ub294 \uc601 \uad81\ud569\uc774 \ub9de\uc9c0 \uc54a\uc558\uc2b5\ub2c8\ub2e4. (\ucf5c\ubc31\ud568\uc218 \uc5b4\uca54\uac70\uc57c)<br \/>\n\ud558\uc9c0\ub9cc \uc774\uc81c C++11 \ud45c\uc900\uc5d0 \uc2a4\ub808\ub4dc \ub77c\uc774\ube0c\ub7ec\ub9ac\uac00 \ub4e4\uc5b4\uac10\uc73c\ub85c \uc778\ud574, OS \ub3c5\ub9bd\uc801\uc774\uba70 C++\uacfc\ub3c4 \uad81\ud569\uc774 \ub9de\ub294 \ucf54\ub4dc\ub97c \uc27d\uac8c \uc0dd\uc131\ud574\ub0b4\uac8c \ub418\uc5c8\uc2b5\ub2c8\ub2e4. \uc2a4\ub808\ub4dc \ud504\ub85c\uadf8\ub798\ubc0d\uc774 \uc26c\uc6cc\uc9c4\uac70\uc8e0.<br \/>\n\uc2a4\ub808\ub4dc\ub97c \uc0dd\uc131, \uad00\ub9ac\ud558\ub294 std::thread \ud074\ub798\uc2a4, \uc0c1\ud638\ubc30\uc81c\ub97c \uc2e4\ud604\ud558\ub294 std::mutex \ud074\ub798\uc2a4 \ub4f1\uc774 \ucd94\uac00\ub418\uc5c8\uc2b5\ub2c8\ub2e4. &lt;thread&gt;\ud5e4\ub354, &lt;mutex&gt;\ud5e4\ub354\uc5d0 \ub4e4\uc5b4\uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p>view plaincopy to clipboardprint?<br \/>\nstd::map&lt;std::string, std::string&gt; g_pages;<br \/>\nstd::mutex g_pages_mutex;<\/p>\n<p>void save_page(const std::string &amp;url)<br \/>\n{<br \/>\nstd::this_thread::sleep_for(std::chrono::seconds(2));<br \/>\nstd::string result = &#8220;fake content&#8221;;<\/p>\n<p>g_pages_mutex.lock();<br \/>\ng_pages[url] = result;<br \/>\ng_pages_mutex.unlock();<br \/>\n}<\/p>\n<p>int main()<br \/>\n{<br \/>\nstd::thread t1([](){save_page(&#8220;http:\/\/foo&#8221;)});<br \/>\nstd::thread t2(save_page, &#8220;http:\/\/bar&#8221;);<br \/>\nt1.join();<br \/>\nt2.join();<\/p>\n<p>g_pages_mutex.lock();<br \/>\nfor (const auto &amp;pair : g_pages) {<br \/>\nstd::cout &lt;&lt; pair.first &lt;&lt; &#8221; =&gt; &#8221; &lt;&lt; pair.second &lt;&lt; &#8216;n&#8217;;<br \/>\n}<br \/>\ng_pages_mutex.unlock();<br \/>\n}<br \/>\n\uc2a4\ub808\ub4dc \ud074\ub798\uc2a4\ub294 t1\ucc98\ub7fc \ub78c\ub2e4\ud568\uc218\ub97c \ub118\uaca8\uc918\ub3c4 \uc88b\uace0, t2\ucc98\ub7fc \ud568\uc218\uc640 \uc778\uc790\ub97c \ub118\uaca8\uc918\ub3c4 \uc88b\uc2b5\ub2c8\ub2e4. \uc2a4\ub808\ub4dc \uc778\uc2a4\ud134\uc2a4\ub294 \uc0dd\uc131\ub418\uc790\ub9c8\uc790 \ubcc4\ub3c4\uc758 \uc2a4\ub808\ub4dc\uc5d0\uc11c \uc791\uc5c5\uc744 \uc2dc\uc791\ud558\uc5ec \uc8fc \uc2a4\ub808\ub4dc\uc5d0\uc11c\ub294 join \ud568\uc218\ub85c \uc790\uc2dd \uc2a4\ub808\ub4dc\uac00 \uc885\ub8cc\ub418\uae38 \uae30\ub2e4\ub9b4 \uc218 \uc788\uc8e0. \uc790\uc6d0 \uacf5\uc720\uc2dc \ubc1c\uc0dd\ud560 \uc218 \uc788\ub294 \ubb38\uc81c\ub294 mutex\uc758 lock\uacfc unlock\uc73c\ub85c \uc81c\uc5b4\uac00\ub2a5\ud569\ub2c8\ub2e4.<\/p>\n<p>\ub355\ubd84\uc5d0 \uc774\uc81c\ub294 \uba40\ud2f0\uc2a4\ub808\ub4dc \ud504\ub85c\uadf8\ub798\ubc0d\uc774 \ud55c\uacb0 \uac04\ud3b8\ud574\uc84c\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\uc774\uc815\ub3c4\ub9cc \ud574\ub3c4 C++11 \uc368\ubcf4\uace0 \uc2f6\uc5b4\uc9c0\uc9c0 \uc54a\ub098\uc694? \uadfc\ub370 \uc774\uac74 \uc544\uc9c1 \uc0c8\ubc1c\uc758 \ud53c\ub77c\ub294\uac8c\u3137\u3137 \uadf8\ub9ac\uace0 \uba70\uce60\uc804\uc5d0\ub294 C++14\uc5d0 \ub300\ud55c \uc18c\uc2dd\ub3c4 \ub4e4\uc5c8\uc5b4\uc694. C++\ub3c4 \uc2dc\ub300\uc5d0 \ub4a4\uccd0\uc9c0\uc9c0 \uc54a\uac8c \ubd80\ub2e8\ud788 \ubc1c\uc804\ud574\ub098\uac00\ub294 \ubaa8\uc2b5\uc774 \ubcf4\uae30 \uc88b\uc544\uc694<\/p>\n","protected":false},"excerpt":{"rendered":"<p>C\/C++\uc5b8\uc5b4\ub294 \uc800\uc218\uc900\uae4c\uc9c0 \uc815\ubc00\ud558\uac8c \ub2e4\ub8f0 \uc218 \uc788\ub294 \ubc18\uba74, \ud504\ub85c\uadf8\ub798\uba38\uac00 \uc77c\uc77c\ud788 \uad00\ub9ac\ud574\uc918\uc57c\ud558\ub294 \ubd80\ubd84\uc774 \ub9ce\ub2e4\ub294\uac8c C\/C++\uc5b8\uc5b4\uc5d0 \ub300\ud55c \uc77c\ubc18\uc801\uc778 \uacac\ud574\uc785\ub2c8\ub2e4. \uadf8\ub798\uc11c \uc800\uc218\uc900\uae4c\uc9c0 \uc77c\uc77c\ud788 \uc2e0\uacbd\uc4f0\uc9c0 \uc54a\uc544\ub3c4 \ub418\ub294 \ucfe8\ud55c \uc5b8\uc5b4\ub97c \uac00\uc9c0\uace0 \ub192\uc740 \uc0dd\uc0b0\uc131\uc744 \ucd94\uad6c\ud558\ub294\uac8c \ucd94\uc138\uc774\uae30\ub3c4 \ud569\ub2c8\ub2e4. . . . \ub9cc, C++\uc758 \uace8\uc218\ube60\ub85c\uc11c C++11\uc744 \ud1b5\ud574 C++\ub85c\ub3c4 \ucda9\ubd84\ud788 \ucfe8\ud558\uace0 \uc0dd\uc0b0\uc131 \ub192\uc740 \ucf54-\ub4dc\ub97c \uc791\uc131\ud560\uc218 \uc788\ub2e4\uace0 \ubcc0\ud638\ub97c \ud574\ubcf4\ub824\uace0 \ud569\ub2c8\ub2e4. Visual Studio 2011, 2012\ub97c \uc0ac\uc6a9\ud558\ub294 \uc0ac\ub78c\uc774\ub77c\uba74 C++11\uc758 \uc5ec\ub7ec \uc2e0 \ubb38\ubc95\uc744 \ub9db\ubcfc\uc218 \uc788\ub294\ub370\uc694, \ub2e4\ub978 \ubc84\uc804 \ucef4\ud30c\uc77c\ub7ec\uc640\uc758 \ud638\ud658\uc131\uc774 \uad73\uc774 \ud544\uc694\ud55c \uacbd\uc6b0\uac00 \uc544\ub2c8\ub77c\uba74 \uc990\uac70\uc774 \uc0ac\uc6a9\ud560 \uc218 \uc788\uc744\uac70\uc5d0\uc694. 1. RValue \uc6b0\uce21\uac12\uc774\ub77c\uace0 \ud558\uc8e0. \uc194\uc9c1\ud788 \ub9d0\ud574 \ucf54\ub529\uc5d0 \ud3b8\ub9ac\ud568\uc744 \uac00\uc838\ub2e4 \uc8fc\uc9c0\ub294 \uc54a\ub294 \ub140\uc11d\uc774\uace0 \uc774\ud574\ud558\uae30\ub3c4 \uc27d\uc9c0 \uc54a\uc9c0\ub9cc, STL\uc54c\uace0\ub9ac\uc998\uc744 \ube44\ub86f\ud558\uc5ec \uc784\uc2dc\uac1d\uccb4\ub97c \uc0dd\uc131\ud558\uace0 \ud30c\uad34\ud558\ub294 \uc77c\uc774 \uc7a6\uc740 \ucf54\ub4dc\uc5d0\uc11c\ub294 \ud070 \uc131\ub2a5 \ud5a5\uc0c1\uc744 \ubd88\ub7ec\uc62c \uc218 \uc788\ub294 \uac1c\ub150\uc785\ub2c8\ub2e4. view plaincopy to clipboardprint? void Ex1() { std::vector&lt;SomeClass&gt; vec; vec.push_back(SomeClass(1, 2, &#8220;3&#8221;)); } \uc774\ub7f0 \ucf54\ub4dc\uac00 \uc788\ub2e4\uace0 \uce58\uba74, RValue \uac1c\ub150\uc774 \uc5c6\ub358 \uc2dc\uc808\uc5d0\ub294 \uba3c\uc800 SomeClass \uac1d\uccb4\ub97c \uc0dd\uc131\ud558\uace0, \uadf8 \ub2e4\uc74c\uc5d0 \uc778\uc790\ub85c \ub118\uae30\uae30 \uc704\ud574\uc11c \ubcf5\uc0ac\uc0dd\uc131\uc790\ub97c \ud638\ucd9c\ud558\uaca0\uc8e0. \uadf8\ub9ac\uace0 push_back \ud568\uc218 \uc548\uc73c\ub85c \ub118\uc5b4\uac00\uc11c \uc0bd\uc785\ub420\ub54c \ub2e4\uc2dc \ud55c\ubc88 \ubcf5\uc0ac\uac00 \uc77c\uc5b4\ub0a0 \uac81\ub2c8\ub2e4. \uadf8\ub9ac\uace0 push_back \ud568\uc218\ub97c \ube60\uc838\ub098\uc62c\ub54c \uc778\uc790\uac00 \ud30c\uad34\ub418\uace0, push_back \ud568\uc218\ub97c \ube60\uc838\ub098\uc628 \ub2e4\uc74c\uc5d0\ub294 \uc784\uc2dc\ub85c \uc0dd\uc131\ub41c SomeClass \uac1d\uccb4\uac00 \ud30c\uad34\ub429\ub2c8\ub2e4. SomeClass \uac1d\uccb4\ub97c vector\uc5d0 \ucd94\uac00\ud558\uae30 \uc704\ud55c\uac74\ub370, \uc4f8\ub370 \uc5c6\uc774 \uac1d\uccb4\ub97c \ub450 \ubc88\uc774\ub098 \ubcf5\uc0ac\ud558\uace0 \ud30c\uad34\ud588\uc2b5\ub2c8\ub2e4. \uac1d\uccb4\uc548\uc5d0 vector\ub098 \ub610 \ub2e4\ub978 \ucee8\ud14c\uc774\ub108\uac00 \ub4e4\uc5b4\uac00 \uc788\uc5c8\ub2e4\uace0 \uc0dd\uac01\ud558\uba74 \ub0ad\ube44\uac00 \ub9c9\uc2ec\ud558\uaca0\uc8e0&#8230; \uadf8\ub7f0\ub370 RValue\uac1c\ub150\uc774 \ub3c4\uc785\ub428\uc73c\ub85c \uc778\ud574\uc11c \uc6b0\uce21\uac12(\uc784\uc2dc\ub85c \uc0dd\uc131\ub418\ub294 \uac12\uc774\ub77c\uace0 \uc0dd\uac01\ud558\uba74 \uc27d\uc2b5\ub2c8\ub2e4)\uc740 \ubcf5\uc0ac\uc0dd\uc131\uc790\uac00 \uc544\ub2c8\ub77c \uc774\ub3d9(move)\uc0dd\uc131\uc790\ub97c \ud638\ucd9c\ud558\uac8c \ub429\ub2c8\ub2e4. \uadf8\ub798\uc11c Visual Studio [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_mi_skip_tracking":false,"ngg_post_thumbnail":0,"spay_email":"","jetpack_publicize_message":"","jetpack_is_tweetstorm":false,"jetpack_publicize_feature_enabled":true},"categories":[9,7],"tags":[],"aioseo_notices":[],"jetpack_featured_media_url":"","jetpack_publicize_connections":[],"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p5q9Zn-5t","jetpack-related-posts":[{"id":204,"url":"https:\/\/blog.box.kr\/?p=204","url_meta":{"origin":339,"position":0},"title":"64\ube44\ud2b8 \uc708\ub3c4\uc6b0\ub97c \ud504\ub85c\uadf8\ub798\ubc0d \ud558\uae30 \uc704\ud574\uc11c \uc54c\uc544\uc57c \ud560 \ubaa8\ub4e0 \uac83\ub4e4","date":"2014-07-16","format":false,"excerpt":"\uac1c\ubc1c\uc9c0\uc2dd\ucc3d\uace0\/\uc720\uc6a9\ud55c\ud301\u00a02010\/08\/22 03:43 \uae00\uc774 \ub108\ubb34 \uc88b\uc544\uc11c, \ud55c \ubc88 \ubc88\uc5ed\ud574 \ubcf4\uc558\uc2b5\ub2c8\ub2e4. \ud639\uc2dc \ud5a5\ud6c4\uc5d0 64\ube44\ud2b8 \uc708\ub3c4\uc6b0\uc5d0\uc11c \ud504\ub85c\uadf8\ub798\ubc0d \ud558\uc2e4 \ubd84\uc740 \uadf8\ub0e5 \ud55c \ubc88 \ucc38\uace0\ud574 \ubcf4\uc2dc\uae30 \ubc14\ub78d\ub2c8\ub2e4. \uc6d0\ubb38\uc740 \uc544\ub798\uc5d0\uc11c \ucc3e\uc544\ubcf4\uc2e4 \uc218 \uc788\uc2b5\ub2c8\ub2e4. http:\/\/msdn.microsoft.com\/msdnmag\/issues\/06\/05\/x64\/#contents \ucd94\uac00\uc0ac\ud56d (2006-05-18) \uc544\ub798\uc758 \ub450 \uc6f9\uc0ac\uc774\ud2b8\ub97c \ud504\ub85c\uadf8\ub798\ubc0d \ud558\uae30 \uc804\uc5d0 \ucc38\uace0\ud574 \ubcf4\uc2dc\uae30 \ubc14\ub78d\ub2c8\ub2e4. \ucc38\uace0: 64\ube44\ud2b8 \uad00\ub828 \ucef4\ud30c\uc77c\ub7ec \uc124\uc815 \ubc0f \ud504\ub85c\uc81d\ud2b8 \uad6c\uc131(\ud55c\uae00) http:\/\/msdn2.microsoft.com\/ko-kr\/library\/h2k70f3s(VS.80).aspx \ub9c8\uc774\ud06c\ub85c \uc18c\ud504\ud2b8\uc6e8\uc5b4\uc5d0\u2026","rel":"","context":"In &quot;C\/C++&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1268,"url":"https:\/\/blog.box.kr\/?p=1268","url_meta":{"origin":339,"position":1},"title":"\uae30\uae30 \uace0\uc720 \uc2dd\ubcc4(Identify) \uc5bb\uae30 device_info","date":"2021-05-18","format":false,"excerpt":"https:\/\/pub.dev\/packages\/device_infohttps:\/\/pub.dev\/packages\/device_info_plus import 'dart:io'; \/\/Platform \uc0ac\uc6a9\uc744 \uc704\ud55c \ud328\ud0a4\uc9c0 import 'package:flutter\/services.dart'; \/\/PlatformException \uc0ac\uc6a9\uc744 \uc704\ud55c \ud328\ud0a4\uc9c0 import 'package:device_info\/device_info.dart'; \/\/ \ub514\ubc14\uc774\uc2a4 \uc815\ubcf4 \uc0ac\uc6a9 \ud328\ud0a4\uc9c0 Future<String> getMobileId() async { \/\/ DeviceInfoPlugin \ud074\ub798\uc2a4 \uc0dd\uc131 final DeviceInfoPlugin deviceInfoPlugin = DeviceInfoPlugin(); \/\/ id \uc800\uc7a5\ud560 \ubcc0\uc218 String id = ''; try { \/\/ \ud50c\ub7ab\ud3fc \ud655\uc778 if (Platform.isAndroid) { \/\/\u2026","rel":"","context":"In &quot;flutter&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":401,"url":"https:\/\/blog.box.kr\/?p=401","url_meta":{"origin":339,"position":2},"title":"[\ud38c][Cocos2d-x] 3.0 Alpha1 &#8211; Hello World.h","date":"2014-09-15","format":false,"excerpt":"http:\/\/singleton.tistory.com\/348 \u00a0 [Cocos2d-x] 3.0 Alpha1 - Hello World.h\u00a0 \ud504\ub85c\uc81d\ud2b8\/Cocos2d-x\u00a0| 2013\/12\/07 20:09 \u00a0\u00a0 \u203b python\uc758 create_project\ub85c \uc0dd\uc131\ud55c \uc0d8\ud50c \ud504\ub85c\uc81d\ud2b8\uc5d0 \ub300\ud55c \uae00\uc785\ub2c8\ub2e4.#ifndef __HELLOWORLD_SCENE_H__ #define __HELLOWORLD_SCENE_H__\/\/ cocos2d \ucf54\ub4dc\ub97c \uc4f0\uae30 \uc704\ud55c \uc778\ud074\ub8e8\ub4dc #include \"cocos2d.h\" class HelloWorld : public cocos2d::Layer { public: \/\/ there's no 'id' in cpp, so we recommend returning the class instance\u2026","rel":"","context":"In &quot;\uc77c\uc0c1&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":505,"url":"https:\/\/blog.box.kr\/?p=505","url_meta":{"origin":339,"position":3},"title":"[\ud38c] __cdecl, __pascal, __stdcall \uc758 \ucc28\uc774\uc5d0 \uad00\ud55c \uc815\ub9ac","date":"2014-12-26","format":false,"excerpt":"\ud568\uc218\ud638\ucd9c \ubc29\uc2dd\uc774 __cdecl, __pascal, __stdcall\ub85c \uc5ec\ub7ec \uac00\uc9c0\uac00 \uc788\ub294 \uc774\uc720\ub294 \uc708\ub3c4\uc6b0\uc988\uc758 \uc5ed\uc0ac\uc131\uc5d0 \uc788\ub2e4. \uc6b0\uc120 win16\uc5d0\uc11c\ub294 \uc2e4\ud589\ud30c\uc77c\uc758 \ud06c\uae30\uac00 \uc904\uc5b4\ub4e4\uace0 \uc18d\ub3c4\uac00 \ube60\ub974\ub2e4\ub294 \uc774\uc720\ub85c pascall \ubc29\uc2dd\uc744 \uc0ac\uc6a9 \ud588\uace0 win32\uc5d0\uc11c\ub294 \uac00\ubcc0\ub9e4\uac1c\uc778\uc790\ub97c \uc9c0\uc6d0\ud558\ub294 \ud568\uc218\ub97c \uc81c\uc678\ud55c \ubaa8\ub4e0 \ud568\uc218\ub4e4\uc740 __stdcall\uc744 \uc0ac\uc6a9 \ud55c\ub2e4. \ub9cc\uc57d c \ubc29\uc2dd\uc758 \ud568\uc218\ud638\ucd9c\uc744 \uc6d0\ud55c\ub2e4\uba74 __cdecl\uc744 \uba85\uc2dc\ud574 \uc8fc\uc5b4\uc57c \ud55c\ub2e4.(\uc708\ub3c4\uc6b0\uc988 \ud504\ub85c\uadf8\ub798\ubc0d\uc5d0 \uc788\uc5b4\uc11c) \uc6b0\uc120 c \ubc29\uc2dd\uc758 \ud568\uc218 \ud638\ucd9c\uacfc\u2026","rel":"","context":"In &quot;C\/C++&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":333,"url":"https:\/\/blog.box.kr\/?p=333","url_meta":{"origin":339,"position":4},"title":"[MFC] &#8211; \ud2b8\ub808\uc774 \uc544\uc774\ucf58 \ub4f1\ub85d \ubc0f \uc708\ub3c4\uc6b0 \uac10\ucd94\uae30","date":"2014-08-09","format":false,"excerpt":"\ucd9c\ucc98 :\u00a0http:\/\/hotangs.tistory.com\/28 \uc708\ub3c4\uc6b0 \uc6b0\uce21 \ud558\ub2e8\uc5d0 \ud2b8\ub808\uc774 \uc544\uc774\ucf58\uc744 \ub4f1\ub85d\ud558\ub294 \ubc29\ubc95\uc774\ub2e4. \uc6b0\uc120 \ud504\ub85c\uc81d\ud2b8\uc5d0 \ud604\uc7ac \ud2b8\ub808\uc774 \uc0c1\ud0dc\ub97c \uc54c\uc218 \uc788\ub294 BOOL \ubcc0\uc218\ub97c \uc120\uc5b8\ud55c\ub2e4. Protected \uc5d0 \uc120\uc5b8 \ubcc0\uc218 \uc774\ub984\uc740 m_bIsTrayIcon \ub85c \ud558\uaca0\ub2e4. \u00a0 \ub2e4\uc74c \ud2b8\ub808\uc774\uc544\uc774\ucf58\uc744 \ub4f1\ub85d\ud558\ub294 \ud568\uc218\ub97c \ub9cc\ub4e0\ub2e4. \ud568\uc218 \uc774\ub984\uc740 RegistTrayIcon \ub85c \ud558\uaca0\ub2e4. Private \ub85c \uc120\uc5b8 \uadf8\ub9ac\uace0 \ucf54\ub529\ud55c\ub2e4. void CTrayDlg::RegistTrayIcon() { NOTIFYICONDATA\u00a0 nid; nid.cbSize =\u2026","rel":"","context":"In &quot;C\/C++&quot;","img":{"alt_text":"\u00ec\u0082\u00ac\u00ec\u009a\u00a9\u00ec\u009e\u0090 \u00ec\u0082\u00bd\u00ec\u009e\u0085 \u00ec\u009d\u00b4\u00eb\u00af\u00b8\u00ec\u00a7\u0080","src":"https:\/\/i0.wp.com\/cfs3.tistory.com\/upload_control\/download.blog?resize=350%2C200","width":350,"height":200},"classes":[]},{"id":206,"url":"https:\/\/blog.box.kr\/?p=206","url_meta":{"origin":339,"position":5},"title":"Web Browser \ucee8\ud2b8\ub864","date":"2014-07-16","format":false,"excerpt":"Web Browser Control FAQ \u00a0 \ub2e4\uc74c\uc758\u00a0FAQ(FAQ\ub77c\uace0 \ud558\uae30\ub3c4 \ubb50 \ud569\ub2c8\ub2e4\ub9cc.. )\ub294 \uc81c\uac00\u00a0VC++ Q&A\u00a0\uc5d0\uc11c \uadf8 \ub3d9\uc548 \ubd10\uc654\ub358\u00a0Web Browser\u00a0\ucee8\ud2b8\ub864\uacfc \uad00\ub828 \uc9c8\ubb38\ub4e4\uc5d0 \ub300\ud55c \ub2f5 \uae00\uacfc\u00a0KB, MSDN\u00a0\ub9c1\ud06c \ubaa8\uc74c \ub4e4 \uc785\ub2c8\ub2e4.\u00a0 \uadf8 \ub3d9\uc548 \uc9d1 \ucef4\ud4e8\ud130\uc5d0 \uc815\ub9ac\ub9cc \ud574 \ub193\uace0 \ud544\uc694\ud560 \ub54c \uc885\uc885 \ucc38\uace0 \ud588\uc5c8\ub294\ub370 \uc5bc\ub9c8 \uc804 \ub178\ud2b8\ubd81 \ud558\ub4dc\uac00 \uc0ac\ub9dd \ud558\uc2e0 \ud6c4\uc5d0 \ubcf5\uad6c\ud55c \ub0b4\uc6a9\uc744 \ud301 \uac8c\uc2dc\ud310\uc5d0 \uc62c\ub9ac\ub294\uac8c \ub0ab\uaca0\ub2e4\uace0\u2026","rel":"","context":"In &quot;C\/C++&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"https:\/\/blog.box.kr\/index.php?rest_route=\/wp\/v2\/posts\/339"}],"collection":[{"href":"https:\/\/blog.box.kr\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.box.kr\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.box.kr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.box.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=339"}],"version-history":[{"count":0,"href":"https:\/\/blog.box.kr\/index.php?rest_route=\/wp\/v2\/posts\/339\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.box.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=339"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.box.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=339"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.box.kr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=339"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}