¼±º°µÈ 30°³ ÇÙ½É °¡À̵å¶óÀο¡¼ ÇǾ´Â ¸ð´ø C++ÀÇ ¾Æ¸§´Ù¿ò C++ ÄÚµù ½ºÅ¸ÀÏÀ» °³¼±ÇÏ´Â µ¥ À¯¿ëÇÑ 30°¡Áö ÇÙ½É °¡À̵å¶óÀÎÀ» ¼±Á¤ÇØ »ó¼¼ÇÑ ½Ç¹« Áö½Ä°ú ÇÔ²² ¼³¸íÇÑ´Ù. °ø½Ä C++ ÇÙ½É °¡À̵å¶óÀÎ À¥»çÀÌÆ®¿Í ±ä¹ÐÇÏ°Ô ¿¬°èµÇµµ·Ï ±¸¼ºÇß°í, °³³äÀû ÅëÂû·Â°ú Àü¹®ÀûÀÎ »ùÇà Äڵ带 Á¦°øÇÑ´Ù. »ç·Ê¿Í ÇÔ²² ¸Æ¶ô ¼Ó¿¡¼ »õ·Î¿î ¾ð¾î ±â´É°ú ¿À·¡µÈ ¾ð¾î ±â´É ¸ðµÎ¸¦ ¼º°øÀûÀ¸·Î »ç¿ëÇÏ´Â °ËÁõµÈ ¹æ¹ýÀ» Á¶¸íÇÔÀ¸·Î½á, ±âº»ÀûÀ¸·Î ´õ °·ÂÇÏ°í ¼º´ÉÀÌ ¶Ù¾î³ ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ´Â ¹æ¹ýÀ» º¸¿©ÁØ´Ù.
Å©¸®¿¡ÀÌƼºê ¾î¼Àºí¸®ÀÇ ¿£Áö´Ï¾î¸µ ½Ç¹«ÀåÀ¸·Î, ¡´ÅäÅ» ¿ö¡µ ÇÁ·£Â÷ÀÌÁî °³¹ß, Ä«Å»·Î±× Å¥·¹À̼Ç, ¿£Áö´Ï¾î¸µ ÆÀÀÇ ÇÁ·Î±×·¡¹Ö Ç¥ÁØ °³¼± ÀÛ¾÷À» ´ã´çÇÏ°í ÀÖ´Ù. ISO C++ À§¿øȸ¿¡¼ È°µ¿ÇÏ°í, #include ¡´C++¡µ µð½ºÄÚµå ¼¹ö¸¦ ¿î¿µÇϸç, C++ Çà»ç¿¡¼ ¿¬¼³ÇÑ´Ù. Prospela, BAME in Games µî C++ ¸àÅ丵 È°µ¿µµ ÇÏ°í ÀÖ´Ù.
¿Å±äÀÌ ¸Ó¸®¸» xiiº£Å¸¸®´õ Èıâ xiii¼±Á¤ °¡À̵å¶óÀÎ ¸ñ·Ï xviÃßõ ¼¹®(ºñ¾ß³× ½ºÆ®·Ó½ºÆ®·ì) xvii½ÃÀÛÇϸç xix°¨»çÀÇ ±Û xxivPART 1 »ç¼ÒÇÑ °Í ¶§¹®¿¡ Áß¿äÇÑ ¹®Á¦¸¦ ³õÄ¡Áö ¸»ÀÚCHAPTER 1.1 [P.2] ISO Ç¥ÁØ C++·Î ÀÛ¼ºÇ϶ó 3__1.1.1 ISO Ç¥ÁØ C++¶õ ¹«¾ùÀΰ¡? 3__1.1.2 Â÷À̸¦ ĸ½¶ÈÇϱâ 5__1.1.3 ¿¹Àü ¹æ½Ä ÇнÀÇϱâ 9__1.1.4 Ç¥ÁØ °³¹ß ÇöȲ ÆľÇÇϱâ 11CHAPTER 1.2 [F.51] ¼±ÅÃÀÇ ¿©Áö°¡ ÀÖ´Ù¸é ¿À¹ö·Îµù ´ë½Å ±âº» Àμö¸¦ »ç¿ëÇ϶ó 13__1.2.1 ¼Ò°³ 13__1.2.2 Ãß»óÈ ´Ùµë±â: Ãß°¡ Àμö³Ä, ¿À¹ö·ÎµùÀÌ³Ä 14__1.2.3 ¿À¹ö·Îµå È®ÀÎÀÇ ¹Ì¹¦ÇÑ Â÷ÀÌ 16__1.2.4 ¿¹Á¦·Î µ¹¾Æ°¡±â 18__1.2.5 ¸ðÈ£ÇÏÁö ¾Ê´Ù´Â ±âº» ÀμöÀÇ Æ¯¼º 19__1.2.6 ¿À¹ö·ÎµåÀÇ ´ë¾È 21__1.2.7 ¹Ýµå½Ã ¿À¹ö·ÎµåÇØ¾ß ÇÏ´Â °æ¿ì 21__1.2.8 ¿ä¾à 22CHAPTER 1.3 [C.45] µ¥ÀÌÅÍ ¸â¹ö¸¦ ÃʱâÈÇϱ⸸ ÇÏ´Â ±âº» »ý¼ºÀÚ¸¦ Á¤ÀÇÇÏÁö ¸»°í ±âº» ¸â¹ö ÃʱâÈÀÚ·Î Ãʱ갪À» ¼³Á¤Ç϶ó 24__1.3.1 ¾î·°Å³ª ±âº» »ý¼ºÀÚ°¡ ÀÖ´Â ÀÌÀ¯´Â? 24__1.3.2 µ¥ÀÌÅÍ ¸â¹ö¸¦ ÃʱâÈÇÏ·Á¸é? 26__1.3.3 µÎ »ç¶÷ÀÌ Å¬·¡½º Çϳª¸¦ À¯Áöº¸¼öÇÏ¸é ¹«½¼ ÀÏÀÌ ¹ß»ýÇϳª¿ä? 28__1.3.4 ¿ä¾à 31CHAPTER 1.4 [C.131] ÀÚ¸íÇÑ getter¿Í setter´Â ÇÇÇ϶ó 32__1.4.1 ¾ÆÁÖ ¿À·¡µÈ À̵ð¾ö 32__1.4.2 Ãß»óÈ 33__1.4.3 ´Ü¼øÇÑ Ä¸½¶È 36__1.4.4 Ŭ·¡½º ºÒº¯ Á¶°Ç 39__1.4.5 ¸í»ç¿Í µ¿»ç 41__1.4.6 ¿ä¾à 42CHAPTER 1.5 [ES.10] ¼±¾ð´ç ´Ü ÇϳªÀÇ À̸§¸¸ ¼±¾ðÇ϶ó 43__1.5.1 ¼Ò°³ÇÕ´Ï´Ù 43__1.5.2 ÇÏÀ§ ȣȯ¼º 47__1.5.3 ´õ ¸íÈ®ÇÏ°Ô ¼±¾ðÇϱâ 48__1.5.4 ±¸Á¶Àû ¹ÙÀεù 49__1.5.5 ¿ä¾à 51CHAPTER 1.6 [NR.2] ÇÔ¼ö¿¡ ´ÜÀÏ ¹Ýȯ¹®À» °íÁýÇÏÁö ¸»¶ó 52__1.6.1 ±ÔÄ¢Àº ÁøÈÇÕ´Ï´Ù 52__1.6.2 Á¤¸®¸¦ º¸ÀåÇϱâ 54__1.6.3 RAII »ç¿ëÇϱâ 57__1.6.4 ÁÁÀº ÇÔ¼ö ÀÛ¼ºÇϱâ 59__1.6.5 ¿ä¾à 61PART 2 Àڱ⠹ߵîÀ» ÂïÁö ¸»¶óCHAPTER 2.1 [P.11] ÁöÀúºÐÇÑ ±¸Á¶Ã¼´Â Äڵ忡 ÆîÃijõÁö ¸»°í ĸ½¶ÈÇ϶ó 65__2.1.1 ÇÑ ¹ø¿¡ ó¸®Çϱâ 65__2.1.2 ÁöÀúºÐÇÑ ±¸Á¶Ã¼¸¦ ĸ½¶ÈÇÑ´Ù´Â ÀÇ¹Ì 67__2.1.3 ¾ð¾îÀÇ ¸ñÀû°ú Ãß»óÈÀÇ º»Áú 69__2.1.4 Ãß»óÈ ¼öÁØ 72__2.1.5 ¸®ÆÑÅ͸µ°ú ±¸ºÐ Áþ±â¸¦ ÅëÇÑ Ãß»óÈ 74__2.1.6 ¿ä¾à 75CHAPTER 2.2 [I.23] ÇÔ¼öÀÇ Àμö¸¦ Àû°Ô À¯ÁöÇ϶ó 76__2.2.1 ¾ó¸¶³ª ¹ú¾î¾ß ÇÒ±î¿ä? 76__2.2.2 Ãß»óȸ¦ ÅëÇØ ¹®Á¦¸¦ ´Ü¼øÈÇϱâ 78__2.2.3 °¡´ÉÇÑ ÇÑ Àû°Ô ÇϵÇ, ´ú ÇÏÁö´Â ¸»±â 81__2.2.4 ½ÇÁ¦ »ç·Ê 83__2.2.5 ¿ä¾à 85CHAPTER 2.3 [I.26] Å©·Î½º ÄÄÆÄÀÏ·¯ ABI°¡ ÇÊ¿äÇϸé C ¹æ½ÄÀÇ ÇÏÀ§ ÁýÇÕÀ» »ç¿ëÇ϶ó 86__2.3.1 ¶óÀ̺귯¸® ¸¸µé±â 86__2.3.2 ABI¶õ ¹«¾ùÀΰ¡? 87__2.3.3 ÃÖ¼ÒÇÑÀ¸·Î ÁÙÀ̱â 89__2.3.4 ¿¹¿Ü ÀüÆÄ 91__2.3.5 ¿ä¾à 92CHAPTER 2.4 [C.47] ¸â¹ö¸¦ ¼±¾ðÇÑ ¼ø¼´ë·Î µ¥ÀÌÅÍ ¸â¹ö¸¦ Á¤ÀÇÇÏ°í ÃʱâÈÇ϶ó 94__2.4.1 ¿ä¾à 103CHAPTER 2.5 [CP.3] ¾²±â °¡´ÉÇÑ µ¥ÀÌÅÍÀÇ ¸í½ÃÀû °øÀ¯´Â ÃÖ¼ÒÈÇ϶ó 104__2.5.1 ÀüÅëÀû ½ÇÇà ¸ðµ¨ 104__2.5.2 Àá±ñ, ´õ ÀÖ½À´Ï´Ù 106__2.5.3 ±³Âø »óÅ ¹× µ¥ÀÌÅÍ °æÀï ÇÇÇϱâ 109__2.5.4 Àá±Ý°ú ¹ÂÅؽº ¿ÜÀÇ »çÇ× 111__2.5.5 ¿ä¾à 114CHAPTER 2.6 [T.120] ²À ÇÊ¿äÇÒ ¶§¸¸ ÅÛÇø´ ¸ÞŸÇÁ·Î±×·¡¹ÖÀ» »ç¿ëÇ϶ó 115__2.6.1 std::enable_if¿¡¼ requires·Î 123__2.6.2 ¿ä¾à 128PART 3 ±×¸¸ »ç¿ëÇ϶óCHAPTER 3.1 [I.11] Àý´ë·Î ¿ø½Ã Æ÷ÀÎÅÍ(T*)³ª ÂüÁ¶(T&)·Î ¼ÒÀ¯±ÇÀ» ³Ñ±âÁö ¸»¶ó 131__3.1.1 ÀÚÀ¯ °ø°£ »ç¿ëÇϱâ 131__3.1.2 ½º¸¶Æ® Æ÷ÀÎÅÍÀÇ ¼º´É ºñ¿ë 134__3.1.3 µ¥ÄÚ·¹ÀÌÅÍ ¾ø´Â ÂüÁ¶ ½Ã¸Çƽ »ç¿ëÇϱâ 135__3.1.4 gsl::owner 136__3.1.5 ¿ä¾à 139CHAPTER 3.2 [I.3] ½Ì±ÛÅÏÀ» ÇÇÇ϶ó 140__3.2.1 Àü¿ª °´Ã¼´Â ³ª»Þ´Ï´Ù 140__3.2.2 ½Ì±ÛÅÏ µðÀÚÀÎ ÆÐÅÏ 141__3.2.3 Á¤Àû ÃʱâÈ ¼ø¼ ½ÇÆÐ 142__3.2.4 ½Ì±ÛÅÏ ¼û±â´Â ¹ý 144__3.2.5 ÇÏÁö¸¸ ÀÌ Áß Çϳª¸¸ Á¸ÀçÇØ¾ß ÇÕ´Ï´Ù 145__3.2.6 Àá±ñ¸¸¿ä... 147__3.2.7 ¿ä¾à 149CHAPTER 3.3 [C.90] memset°ú memcpy¿¡ ÀÇÁ¸ÇÏÁö ¸»°í »ý¼ºÀÚ¿Í ÇÒ´ç ¿¬»êÀÚ¸¦ »ç¿ëÇ϶ó 150__3.3.1 ÃÖ´ë ¼º´É Ãß±¸Çϱâ 150__3.3.2 ²ûÂïÇÑ »ý¼ºÀÚ ¿À¹öÇìµå 151__3.3.3 °¡Àå °£´ÜÇÑ Å¬·¡½º 152__3.3.4 ¾î·µç Ç¥ÁØ¿¡¼ ¼³¸íÇÏ´Â ³»¿ëÀº ¹«¾ùÀΰ¡¿ä? 155__3.3.5 ±×·¯¸é memcpy´Â ¾î¶§¿ä? 158__3.3.6 ÄÄÆÄÀÏ·¯¸¦ Àý´ë °ú¼ÒÆò°¡ÇÏÁö ¸»¶ó 159__3.3.7 ¿ä¾à 161CHAPTER 3.4 [ES.50] const¸¦ Çü º¯È¯ÇÏÁö ¸»¶ó 162__3.4.1 À̾߱â 162__3.4.2 ÈξÀ ´õ ¸¹Àº µ¥ÀÌÅÍ ´Ù·ç±â 163__3.4.3 »ó¼ö ¹æȺ® 165__3.4.4 ÀÌÁß ÀÎÅÍÆäÀ̽º ±¸Çö 166__3.4.5 ij½Ì°ú ´À±ßÇÑ °è»ê¹ý 168__3.4.6 µÎ Á¾·ùÀÇ const 169__3.4.7 constÀÇ ³î¶ó¿î Á¡ 171__3.4.8 ¿ä¾à 172CHAPTER 3.5 [E.28] Àü¿ª »óÅ¿¡ µû¸¥ ¿¡·¯ 󸮴 ÇÇÇ϶ó(¿¹: errno) 173__3.5.1 ¿¡·¯ 󸮴 ¾î·Æ½À´Ï´Ù 173__3.5.2 C¿Í errno 173__3.5.3 ¹Ýȯ ÄÚµå 175__3.5.4 ¿¹¿Ü 176__3.5.5 ¡´system_error¡µ 177__3.5.6 Boost.Outcome 177__3.5.7 ¿¡·¯ 󸮴 ¿Ö ÀÌ·¸°Ô ¾î·Á¿î°¡? 179__3.5.8 °í»ý ³¡¿¡ ³«ÀÌ ¿Â´Ù 180__3.5.9 ¿ä¾à 182CHAPTER 3.6 [SF.7] Çì´õ ÆÄÀÏÀÇ Àü¿ª ¹üÀ§¿¡ using namespace¸¦ »ç¿ëÇÏÁö ¸»¶ó 183__3.6.1 ÀÌ·¸°Ô ÇÏÁö ¸»¶ó 183__3.6.2 ¸íÈ®ÇÏ°Ô Çϱâ 184__3.6.3 using »ç¿ë¹ý 185__3.6.4 ½É¹úÀº ¾îµð·Î °¡³ª? 187__3.6.5 ÇÑÃþ ´õ Àº¹ÐÈ÷ ÆÛÁö´Â ¹®Á¦ 190__3.6.6 º¹ÀâÇÑ ¹üÀ§ ÁöÁ¤ ¿¬»êÀÚ ¹®Á¦ ÇØ°áÇϱâ 191__3.6.7 À¯È¤°ú Ÿ¶ô 193__3.6.8 ¿ä¾à 194PART 4 »õ·Î¿î ±â´ÉÀ» Á¦´ë·Î »ç¿ëÇ϶óCHAPTER 4.1 [F.21] ¡®Ãâ·Â°ª¡¯À» ¿©·¯ °³·Î ¹ÝȯÇÏ·Á¸é ±¸Á¶Ã¼·Î ¹ÝȯÇ϶ó 197__4.1.1 ÇÔ¼ö ½Ã±×´ÏóÀÇ ÇüÅ 197__4.1.2 ¼³¸í°ú ¾Ö³ÊÅ×ÀÌ¼Ç 198__4.1.3 ÀÌÁ¦ °´Ã¼¸¦ ¹ÝȯÇÒ ¼ö ÀÖ½À´Ï´Ù 199__4.1.4 Æ©Çõµ ¹ÝȯÇÒ ¼ö ÀÖ½À´Ï´Ù 203__4.1.5 ºñ»ó¼ö ÂüÁ¶·Î Àü´Þ ¹× ¹ÝȯÇϱâ 205__4.1.6 ¿ä¾à 209CHAPTER 4.2 [Enum.3] ´Ü¼ø ¿°ÅÇüº¸´Ù´Â Ŭ·¡½º ¿°ÅÇüÀ» ÅÃÇ϶ó 210__4.2.1 »ó¼ö 210__4.2.2 ¹üÀ§°¡ ÀÖ´Â ¿°ÅÇü 213__4.2.3 ¼û°ÜÁø ŸÀÔ 215__4.2.4 ¾Ï¹¬Àû Çü º¯È¯ 217__4.2.5 ¿ä¾à 219__4.2.6 Ã߽Š219CHAPTER 4.3 [ES.5] ¹üÀ§´Â ÀÛ°Ô À¯ÁöÇ϶ó 220__4.3.1 ¹üÀ§ÀÇ º»Áú 220__4.3.2 ºí·Ï ¹üÀ§ 222__4.3.3 ³×ÀÓ½ºÆäÀ̽º ¹üÀ§ 223__4.3.4 Ŭ·¡½º ¹üÀ§ 226__4.3.5 ÇÔ¼ö ¸Å°³º¯¼ö ¹üÀ§ 228__4.3.6 ¿°ÅÇü ¹üÀ§ 229__4.3.7 ÅÛÇø´ ¸Å°³º¯¼ö ¹üÀ§ 230__4.3.8 ¸Æ¶ôÀ¸·Î¼ÀÇ ¹üÀ§ 231__4.3.9 ¿ä¾à 232CHAPTER 4.4 [Con.5] ÄÄÆÄÀÏ Å¸ÀÓ¿¡ °è»êÇÒ ¼ö ÀÖ´Â °ªÀº constexpr¸¦ »ç¿ëÇ϶ó 233__4.4.1 constºÎÅÍ constexpr¿¡ À̸£±â±îÁö 233__4.4.2 C++ ±âº»°ª 235__4.4.3 constexpr »ç¿ëÇϱâ 237__4.4.4 inline 241__4.4.5 consteval 242__4.4.6 constinit 243__4.4.7 ¿ä¾à 245CHAPTER 4.5 [T.1] ÅÛÇø´À» »ç¿ëÇÏ¿© ÄÚµåÀÇ Ãß»óÈ ¼öÁØÀ» ³ôÀ̶ó 246__4.5.1 À̾߱â 246__4.5.2 Ãß»óÈ ¼öÁØ ³ôÀ̱â 248__4.5.3 ÇÔ¼ö ÅÛÇø´°ú Ãß»óÈ 250__4.5.4 Ŭ·¡½º ÅÛÇø´°ú Ãß»óÈ 253__4.5.5 ÀÛ¸íÀº ¾î·Æ½À´Ï´Ù 255__4.5.6 ¿ä¾à 256CHAPTER 4.6 [T.10] ¸ðµç ÅÛÇø´ ÀμöÀÇ ÄܼÁÆ®¸¦ ¸í½ÃÇ϶ó 257__4.6.1 ¾î¶»°Ô ¿©±â±îÁö ¿ÔÀ»±î¿ä? 257__4.6.2 ¸Å°³º¯¼ö Á¦ÇÑÇϱâ 260__4.6.3 ÄܼÁÆ®¸¦ Ãß»óÈÇÏ´Â ¹ý 263__4.6.3 ÄܼÁÆ®¸¦ ÅëÇØ ºÐÇØÇϱâ 266__4.6.5 ¿ä¾à 268PART 5 ±âº»ÀûÀ¸·Î Äڵ带 Àß ÀÛ¼ºÇ϶óCHAPTER 5.1 [P.4] ÇÁ·Î±×·¥Àº ÃÖ´ëÇÑ Á¤ÀûÀ¸·Î ŸÀÔ¿¡ ¾ÈÀüÇØ¾ß ÇÑ´Ù 273__5.1.1 ŸÀÔ ¾ÈÀü¼ºÀº C++ÀÇ º¸¾È ±â´ÉÀÔ´Ï´Ù 273__5.1.2 °ø¿ëü 275__5.1.3 Çü º¯È¯ 277__5.1.4 unsigned 280__5.1.5 ¹öÆÛ¿Í Å©±â 283__5.1.6 ¿ä¾à 285CHAPTER 5.2 [P.10] °¡º¯ µ¥ÀÌÅͺ¸´Ù´Â ºÒº¯ µ¥ÀÌÅ͸¦ ÅÃÇ϶ó 286__5.2.1 À߸øµÈ ±âº»°ª 286__5.2.2 ÇÔ¼ö ¼±¾ðÀÇ »ó¼ö¼º 289__5.2.3 ¿ä¾à 293CHAPTER 5.3 [I.30] ±ÔÄ¢ À§¹ÝÀ» ĸ½¶ÈÇ϶ó 294__5.3.1 Àϻ󿡼 º¸±â ½ÈÀº °Í ¼û±â±â 294__5.3.2 ü¸é Â÷¸®±â 296__5.3.3 ¿ä¾à 301CHAPTER 5.4 [ES.22] °ªÀ¸·Î ÃʱâÈÇϱâ Àü±îÁö´Â º¯¼ö¸¦ ¼±¾ðÇÏÁö ¸»¶ó 303__5.4.1 Ç¥Çö½Ä°ú ¹®ÀÇ Á߿伺 303__5.4.2 C ¾ð¾î ¹æ½ÄÀÇ ¼±¾ð 304__5.4.3 ¼±¾ð ÈÄ ÃʱâÈÇϱâ 305__5.4.4 ÃÖ´ëÇÑ Áö¿¬µÈ ¼±¾ð 307__5.4.5 ¸Æ¶ô¿¡ µû¸¥ ±â´ÉÀÇ Áö¿ªÈ 309__5.4.6 »óÅ Á¦°ÅÇϱâ 311__5.4.7 ¿ä¾à 313CHAPTER 5.5 [Per.7] ÃÖÀûÈÇÒ ¼ö ÀÖµµ·Ï ¼³°èÇ϶ó 314__5.5.1 ÇÁ·¹ÀÓ ·¹ÀÌÆ® ÃÖ´ëÈÇϱâ 314__5.5.2 Çϵå¿þ¾î ¼öÁØ¿¡¼ ´õ ³ª¾Æ°¡ ÀÛ¾÷Çϱâ 316__5.5.3 Ãß»óȸ¦ ÅëÇÑ ÃÖÀûÈ 320__5.5.4 ¿ä¾à 322CHAPTER 5.6 [E.6] ¸Þ¸ð¸® ´©¼ö¸¦ ¹æÁöÇÏ·Á¸é RAII¸¦ »ç¿ëÇ϶ó 324__5.6.1 °áÁ¤·ÐÀû ¼Ò¸ê 324__5.6.2 ÆÄÀÏ ´©¼ö ¾ø¾Ö±â 327__5.6.3 ¿Ö ±»ÀÌ ÀÌ·¸°Ô ÇÒ±î¿ä? 330__5.6.4 ¹Ì·¡ÀÇ °¡´É¼º±îÁö °í·ÁÇØ¾ß Çϴ°¡ 332__5.6.5 ¾îµð¿¡¼ ¾òÀ» ¼ö ÀÖ³ª¿ä? 335¸¶Ä¡¸ç 338Èıâ(Çãºê ¼ÅÍ) 340ã¾Æº¸±â 342