Notice
Recent Posts
Recent Comments
Link
๊ด€๋ฆฌ ๋ฉ”๋‰ด

๋ชฉ๋ก2022/10 (117)

KoreanFoodie's Study

Effective Modern C++ | ํ•ญ๋ชฉ 15 : ๊ฐ€๋Šฅํ•˜๋ฉด ํ•ญ์ƒ constexpr ๋ฅผ ์‚ฌ์šฉํ•˜๋ผ

C++ ํ”„๋กœ๊ทธ๋ž˜๋จธ์˜ ํ•„๋…์„œ์ด์ž ๋ฐ”์ด๋ธ”์ธ, ์Šค์ฝง ๋งˆ์ด์–ด์Šค์˜ Modern Effective C++ ๋ฅผ ์ฝ๊ณ  ๊ธฐ์–ตํ•  ๋‚ด์šฉ์„ ์š”์•ฝํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ผญ ์ฝ์–ด๋ณด์‹œ๊ธธ ์ถ”์ฒœ๋“œ๋ฆฝ๋‹ˆ๋‹ค! ํ•ญ๋ชฉ 15 : ๊ฐ€๋Šฅํ•˜๋ฉด ํ•ญ์ƒ constexpr ๋ฅผ ์‚ฌ์šฉํ•˜๋ผ ํ•ต์‹ฌ : 1. constexpr ๊ฐ์ฒด๋Š” const ์ด๋ฉฐ, ์ปดํŒŒ์ผ ๋„์ค‘์— ์•Œ๋ ค์ง€๋Š” ๊ฐ’๋“ค๋กœ ์ดˆ๊ธฐํ™”๋œ๋‹ค. 2. constexpr ํ•จ์ˆ˜๋Š” ๊ทธ ๊ฐ’์ด ์ปดํŒŒ์ผ ๋„์ค‘์— ์•Œ๋ ค์ง€๋Š” ์ธ์ˆ˜๋“ค๋กœ ํ˜ธ์ถœํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” ์ปดํŒŒ์ผ ์‹œ์  ๊ฒฐ๊ณผ๋ฅผ ์‚ฐ์ถœํ•œ๋‹ค. 3. constexpr ๊ฐ์ฒด๋‚˜ ํ•จ์ˆ˜๋Š” ๋น„constexpr ๊ฐ์ฒด๋‚˜ ํ•จ์ˆ˜๋ณด๋‹ค ๊ด‘๋ฒ”์œ„ํ•œ ๋ฌธ๋งฅ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. 4. constexpr ์€ ๊ฐ์ฒด๋‚˜ ํ•จ์ˆ˜์˜ ์ธํ„ฐํŽ˜์ด์Šค์˜ ์ผ๋ถ€์ด๋‹ค. ๊ฐœ๋…์ ์œผ๋กœ, constexpr ๋Š” ์–ด๋– ํ•œ ๊ฐ’์ด ๋‹จ์ง€ ์ƒ์ˆ˜์ผ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ปดํŒŒ์ผ ์‹œ์ ์—์„œ ์•Œ๋ ค์ง„..

Tutorials/C++ : Advanced 2022. 10. 26. 09:54
Effective Modern C++ | ํ•ญ๋ชฉ 14 : ์˜ˆ์™ธ๋ฅผ ๋ฐฉ์ถœํ•˜์ง€ ์•Š์„ ํ•จ์ˆ˜๋Š” noexcept ๋กœ ์„ ์–ธํ•˜๋ผ

C++ ํ”„๋กœ๊ทธ๋ž˜๋จธ์˜ ํ•„๋…์„œ์ด์ž ๋ฐ”์ด๋ธ”์ธ, ์Šค์ฝง ๋งˆ์ด์–ด์Šค์˜ Modern Effective C++ ๋ฅผ ์ฝ๊ณ  ๊ธฐ์–ตํ•  ๋‚ด์šฉ์„ ์š”์•ฝํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ผญ ์ฝ์–ด๋ณด์‹œ๊ธธ ์ถ”์ฒœ๋“œ๋ฆฝ๋‹ˆ๋‹ค! ํ•ญ๋ชฉ 14 : ์˜ˆ์™ธ๋ฅผ ๋ฐฉ์ถœํ•˜์ง€ ์•Š์„ ํ•จ์ˆ˜๋Š” noexcept ๋กœ ์„ ์–ธํ•˜๋ผ ํ•ต์‹ฌ : 1. noexcept ๋Š” ํ•จ์ˆ˜์˜ ์ธํ„ฐํŽ˜์ด์Šค์˜ ์ผ๋ถ€์ด๋‹ค. ์ด๋Š” ํ˜ธ์ถœ์ž๊ฐ€ noexcept ์—ฌ๋ถ€์— ์˜์กดํ•  ์ˆ˜ ์žˆ์Œ์„ ๋œปํ•œ๋‹ค. 2. noexcept ํ•จ์ˆ˜๋Š” ๋น„ noexcept ํ•จ์ˆ˜๋ณด๋‹ค ์ตœ์ ํ™”์˜ ์—ฌ์ง€๊ฐ€ ํฌ๋‹ค. 3. noexcept ๋Š” ์ด๋™ ์—ฐ์‚ฐ๋“ค๊ณผ swap, ๋ฉ”๋ชจ๋ฆฌ ํ•ด์ œ ํ•จ์ˆ˜๋“ค, ๊ทธ๋ฆฌ๊ณ  ์†Œ๋ฉธ์ž๋“ค์— ํŠนํžˆ๋‚˜ ์œ ์šฉํ•˜๋‹ค. 4. ๋Œ€๋ถ€๋ถ„์˜ ํ•จ์ˆ˜๋Š” noexcept ๊ฐ€ ์•„๋‹ˆ๋ผ ์˜ˆ์™ธ์— ์ค‘๋ฆฝ์ ์ด๋‹ค. ํ•จ์ˆ˜๋ฅผ noexcept ๋กœ ์„ ์–ธํ•  ๊ฒƒ์ธ์ง€์˜ ์—ฌ๋ถ€๋Š” ์ธํ„ฐํŽ˜์ด์Šค ์„ค๊ณ„์ƒ์˜ ๋ฌธ์ œ์ธ๋ฐ, ์ด๋Š” ํด๋ผ..

Tutorials/C++ : Advanced 2022. 10. 26. 09:54
Effective Modern C++ | ํ•ญ๋ชฉ 12 : ์žฌ์ •์˜ ํ•จ์ˆ˜๋“ค์„ override ๋กœ ์„ ์–ธํ•˜๋ผ

C++ ํ”„๋กœ๊ทธ๋ž˜๋จธ์˜ ํ•„๋…์„œ์ด์ž ๋ฐ”์ด๋ธ”์ธ, ์Šค์ฝง ๋งˆ์ด์–ด์Šค์˜ Modern Effective C++ ๋ฅผ ์ฝ๊ณ  ๊ธฐ์–ตํ•  ๋‚ด์šฉ์„ ์š”์•ฝํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ผญ ์ฝ์–ด๋ณด์‹œ๊ธธ ์ถ”์ฒœ๋“œ๋ฆฝ๋‹ˆ๋‹ค! ํ•ญ๋ชฉ 12 : ์žฌ์ •์˜ ํ•จ์ˆ˜๋“ค์„ override ๋กœ ์„ ์–ธํ•˜๋ผ ํ•ต์‹ฌ : 1. ์žฌ์ •์˜ ํ•จ์ˆ˜๋Š” override ๋กœ ์„ ์–ธํ•˜๋ผ. 2. ๋ฉค๋ฒ„ ํ•จ์ˆ˜ ์ฐธ์กฐ ํ•œ์ •์‚ฌ(reference qualifier)๋ฅผ ์ด์šฉํ•˜๋ฉด ๋ฉค๋ฒ„ ํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ๋˜๋Š” ๊ฐ์ฒด(*this)์˜ ์™ผ๊ฐ’ ๋ฒ„์ „๊ณผ ์˜ค๋ฅธ๊ฐ’ ๋ฒ„์ „์„ ๋‹ค๋ฅธ ๋ฐฉ์‹์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ธฐ๋ฐ˜ ํด๋ž˜์Šค์—์„œ ์ •์˜๋œ ๊ฐ€์ƒ ํ•จ์ˆ˜๊ฐ€ ํŒŒ์ƒ ํด๋ž˜์Šค์—์„œ ์žฌ์ •์˜๋˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์กฐ๊ฑด๋“ค์ด ๋งŒ์กฑ ๋˜์–ด์•ผ ํ•œ๋‹ค. ๊ธฐ๋ฐ˜ ํด๋ž˜์Šค ํ•จ์ˆ˜๊ฐ€ ๊ฐ€์ƒํ•จ์ˆ˜ ์ด์–ด์•ผ ํ•จ ๊ธฐ๋ฐ˜ ํ•จ์ˆ˜์™€ ํŒŒ์ƒ ํ•จ์ˆ˜์˜ ์ด๋ฆ„์ด ๋™์ผํ•ด์•ผ ํ•จ(์†Œ๋ฉธ์ž ์ œ์™ธ) ๊ธฐ๋ฐ˜ ํ•จ์ˆ˜์™€ ํŒŒ์ƒ ํ•จ์ˆ˜์˜ ๋งค๊ฐœ๋ณ€์ˆ˜ ํ˜•์‹๋“ค..

Tutorials/C++ : Advanced 2022. 10. 26. 09:53
Effective Modern C++ | ํ•ญ๋ชฉ 11 : ์ •์˜๋˜์ง€ ์•Š์€ ๋น„๊ณต๊ฐœ ํ•จ์ˆ˜๋ณด๋‹ค ์‚ญ์ œ๋œ ํ•จ์ˆ˜๋ฅผ ์„ ํ˜ธํ•˜๋ผ

C++ ํ”„๋กœ๊ทธ๋ž˜๋จธ์˜ ํ•„๋…์„œ์ด์ž ๋ฐ”์ด๋ธ”์ธ, ์Šค์ฝง ๋งˆ์ด์–ด์Šค์˜ Modern Effective C++ ๋ฅผ ์ฝ๊ณ  ๊ธฐ์–ตํ•  ๋‚ด์šฉ์„ ์š”์•ฝํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ผญ ์ฝ์–ด๋ณด์‹œ๊ธธ ์ถ”์ฒœ๋“œ๋ฆฝ๋‹ˆ๋‹ค! ํ•ญ๋ชฉ 11 : ์ •์˜๋˜์ง€ ์•Š์€ ๋น„๊ณต๊ฐœ ํ•จ์ˆ˜๋ณด๋‹ค ์‚ญ์ œ๋œ ํ•จ์ˆ˜๋ฅผ ์„ ํ˜ธํ•˜๋ผ ํ•ต์‹ฌ : 1. ์ •์˜๋˜์ง€ ์•Š์€ ๋น„๊ณต๊ฐœ ํ•จ์ˆ˜๋ณด๋‹ค ์‚ญ์ œ๋œ ํ•จ์ˆ˜๋ฅผ ์„ ํ˜ธํ•˜๋ผ. 2. ๋น„๋ฉค๋ฒ„ ํ•จ์ˆ˜์™€ ํ…œํ”Œ๋ฆฟ ์ธ์Šคํ„ด์Šค๋ฅผ ๋น„๋กฏํ•œ ๊ทธ ์–ด๋–ค ํ•จ์ˆ˜๋„ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ๋‹ค. ๋‹ค๋ฅธ ๊ฐœ๋ฐœ์ž์—๊ฒŒ ์ œ๊ณตํ•  ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ๋•Œ, ๊ทธ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ฝ”๋“œ์˜ ํŠน์ • ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜์ง€ ๋ชปํ•˜๊ฒŒ ํ•˜๋Š” ๊ฐ€์žฅ ํ”ํ•œ ๋ฐฉ๋ฒ•์€ ๊ทธ๋ƒฅ ๊ทธ ํ•จ์ˆ˜๋ฅผ ์„ ์–ธํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ด๋‹ค. ํ•˜์ง€๋งŒ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๋•Œ๋กœ๋Š” ํ•จ์ˆ˜๋ฅผ ์ž๋™์œผ๋กœ ์ƒ์„ฑํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค. C++ 98 ์—์„œ๋Š” private ์œผ๋กœ ์„ ์–ธ ํ›„, ์ •์˜๋ฅผ ํ•˜์ง€ ์•Š๋Š” ๋ฐฉ์‹์œผ๋กœ ์ด๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ๋„ ํ•œ๋‹ค. ์‹ค์ œ๋กœ ์ž…๋ ฅ..

Tutorials/C++ : Advanced 2022. 10. 26. 09:53
Effective Modern C++ | ํ•ญ๋ชฉ 10 : ๋ฒ”์œ„ ์—†๋Š” enum ๋ณด๋‹ค ๋ฒ”์œ„ ์žˆ๋Š” enum ์„ ์„ ํ˜ธํ•˜๋ผ

C++ ํ”„๋กœ๊ทธ๋ž˜๋จธ์˜ ํ•„๋…์„œ์ด์ž ๋ฐ”์ด๋ธ”์ธ, ์Šค์ฝง ๋งˆ์ด์–ด์Šค์˜ Modern Effective C++ ๋ฅผ ์ฝ๊ณ  ๊ธฐ์–ตํ•  ๋‚ด์šฉ์„ ์š”์•ฝํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ผญ ์ฝ์–ด๋ณด์‹œ๊ธธ ์ถ”์ฒœ๋“œ๋ฆฝ๋‹ˆ๋‹ค! ํ•ญ๋ชฉ 10 : ๋ฒ”์œ„ ์—†๋Š” enum ๋ณด๋‹ค ๋ฒ”์œ„ ์žˆ๋Š” enum ์„ ์„ ํ˜ธํ•˜๋ผ ํ•ต์‹ฌ : 1. C++98 ์Šคํƒ€์ผ์˜ enum ์„ ์ด์ œ๋Š” ๋ฒ”์œ„ ์—†๋Š” enum ์ด๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. 2. ๋ฒ”์œ„ ์žˆ๋Š” enum ์˜ ์—ด๊ฑฐ์ž๋“ค์€ ๊ทธ ์•ˆ์—์„œ๋งŒ ๋ณด์ธ๋‹ค. ์ด ์—ด๊ฑฐ์ž๋“ค์€ ์˜ค์ง ์บ์ŠคํŒ…์„ ํ†ตํ•ด์„œ๋งŒ ๋‹ค๋ฅธ ํ˜•์‹์œผ๋กœ ๋ณ€ํ™˜๋œ๋‹ค. 3. ๋ฒ”์œ„ ์žˆ๋Š” enum ๊ณผ ๋ฒ”์œ„ ์—†๋Š” enum ๋ชจ๋‘ ๋ฐ”ํƒ• ํ˜•์‹ ์ง€์ •์„ ์ง€์›ํ•œ๋‹ค. ๋ฒ”์œ„ ์žˆ๋Š” enum ์˜ ๊ธฐ๋ณธ ๋ฐ”ํƒ• ํ˜•์‹์€ int ์ด๋‹ค. ๋ฒ”์œ„ ์—†๋Š” enum ์—๋Š” ๊ธฐ๋ณธ ๋ฐ”ํƒ• ํ˜•์‹์ด ์—†๋‹ค. 4. ๋ฒ”์œ„ ์žˆ๋Š” enum ์€ ํ•ญ์ƒ ์ „๋ฐฉ ์„ ์–ธ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ๋ฒ”์œ„ ์—†๋Š” enu..

Tutorials/C++ : Advanced 2022. 10. 26. 09:52
Effective Modern C++ | ํ•ญ๋ชฉ 9 : typedef ๋ณด๋‹ค ๋ณ„์นญ ์„ ์–ธ์„ ์„ ํ˜ธํ•˜๋ผ

C++ ํ”„๋กœ๊ทธ๋ž˜๋จธ์˜ ํ•„๋…์„œ์ด์ž ๋ฐ”์ด๋ธ”์ธ, ์Šค์ฝง ๋งˆ์ด์–ด์Šค์˜ Modern Effective C++ ๋ฅผ ์ฝ๊ณ  ๊ธฐ์–ตํ•  ๋‚ด์šฉ์„ ์š”์•ฝํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ผญ ์ฝ์–ด๋ณด์‹œ๊ธธ ์ถ”์ฒœ๋“œ๋ฆฝ๋‹ˆ๋‹ค! ํ•ญ๋ชฉ 9 : typedef ๋ณด๋‹ค ๋ณ„์นญ ์„ ์–ธ์„ ์„ ํ˜ธํ•˜๋ผ ํ•ต์‹ฌ : 1. typedef ์€ ํ…œํ”Œ๋ฆฟํ™”๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š์ง€๋งŒ, using ์€ ์ง€์›ํ•œ๋‹ค. 2. ๋ณ„์นญ ํ…œํ”Œ๋ฆฟ์—์„œ๋Š” "::type" ์ ‘๋ฏธ์–ด๋ฅผ ๋ถ™์ผ ํ•„์š”๊ฐ€ ์—†๋‹ค. ํ…œํ”Œ๋ฆฟ ์•ˆ์—์„œ typedef ์„ ์ง€์นญํ•  ๋•Œ์—๋Š” "typename" ์ ‘๋‘์‚ฌ๋ฅผ ๋ถ™์—ฌ์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค. 3. C++14 ๋Š” C++11 ์˜ ๋ชจ๋“  ํ˜•์‹ ํŠน์งˆ ๋ณ€ํ™˜์— ๋Œ€ํ•œ using ๋“ค์„ ์ œ๊ณตํ•œ๋‹ค. typedef ๊ณผ using (๋ณ„์นญ ์„ ์–ธ, alias declaration) ์ด ํ•˜๋Š” ์ผ์€ ๋™์ผํ•˜์ง€๋งŒ, using ์ด ๋” ์ง๊ด€์ ์ด๋‹ค. // ํ•จ์ˆ˜ ํฌ..

Tutorials/C++ : Advanced 2022. 10. 26. 09:52
Effective Modern C++ | ํ•ญ๋ชฉ 8 : 0 ๊ณผ NULL ๋ณด๋‹ค nullptr ๋ฅผ ์„ ํ˜ธํ•˜๋ผ

C++ ํ”„๋กœ๊ทธ๋ž˜๋จธ์˜ ํ•„๋…์„œ์ด์ž ๋ฐ”์ด๋ธ”์ธ, ์Šค์ฝง ๋งˆ์ด์–ด์Šค์˜ Modern Effective C++ ๋ฅผ ์ฝ๊ณ  ๊ธฐ์–ตํ•  ๋‚ด์šฉ์„ ์š”์•ฝํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ผญ ์ฝ์–ด๋ณด์‹œ๊ธธ ์ถ”์ฒœ๋“œ๋ฆฝ๋‹ˆ๋‹ค! ํ•ญ๋ชฉ 8 : 0 ๊ณผ NULL ๋ณด๋‹ค nullptr ๋ฅผ ์„ ํ˜ธํ•˜๋ผ ํ•ต์‹ฌ : 1. 0 ๊ณผ NULL ๋ณด๋‹ค nullptr ๋ฅผ ์„ ํ˜ธํ•˜๋ผ. 2. ์ •์ˆ˜ ํ˜•์‹๊ณผ ํฌ์ธํ„ฐ ํ˜•์‹์— ๋Œ€ํ•œ ์˜ค๋ฒ„๋กœ๋”ฉ์„ ํ”ผํ•˜๋ผ. ๋ฆฌํ„ฐ๋Ÿด 0์€ int ์ด์ง€ ํฌ์ธํ„ฐ๊ฐ€ ์•„๋‹ˆ๋‹ค. ํฌ์ธํ„ฐ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์œ„์น˜์— 0 ์ด ์žˆ์œผ๋ฉด C++ ์€ ๋งˆ์ง€๋ชปํ•ด ์ด๋ฅผ null ํฌ์ธํ„ฐ๋กœ ํ•ด์„ํ•˜์ง€๋งŒ, ์ด๋Š” ์ตœํ›„์˜ ์ˆ˜๋‹จ์ผ ๋ฟ์ด๋‹ค. // f ์˜ ์„ธ ๊ฐ€์ง€ ์˜ค๋ฒ„๋กœ๋”ฉ void f(int); void f(bool); void f(void*); ... // f(void*) ๊ฐ€ ์•„๋‹Œ f(int) ํ˜ธ์ถœ f(0); // ์ปดํŒŒ์ผ ๋˜์ง€ ..

Tutorials/C++ : Advanced 2022. 10. 26. 09:51
Effective Modern C++ | ํ•ญ๋ชฉ 7 : ๊ฐ์ฒด ์ƒ์„ฑ ์‹œ ๊ด„ํ˜ธ'( )' ์™€ ์ค‘๊ด„ํ˜ธ'{ }' ๋ฅผ ๊ตฌ๋ถ„ํ•˜๋ผ

C++ ํ”„๋กœ๊ทธ๋ž˜๋จธ์˜ ํ•„๋…์„œ์ด์ž ๋ฐ”์ด๋ธ”์ธ, ์Šค์ฝง ๋งˆ์ด์–ด์Šค์˜ Modern Effective C++ ๋ฅผ ์ฝ๊ณ  ๊ธฐ์–ตํ•  ๋‚ด์šฉ์„ ์š”์•ฝํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ผญ ์ฝ์–ด๋ณด์‹œ๊ธธ ์ถ”์ฒœ๋“œ๋ฆฝ๋‹ˆ๋‹ค! ํ•ญ๋ชฉ 7 : ๊ฐ์ฒด ์ƒ์„ฑ ์‹œ ๊ด„ํ˜ธ'( )' ์™€ ์ค‘๊ด„ํ˜ธ'{ }' ๋ฅผ ๊ตฌ๋ถ„ํ•˜๋ผ ํ•ต์‹ฌ : 1. ์ค‘๊ด„ํ˜ธ ์ดˆ๊ธฐํ™”๋Š” ๊ฐ€์žฅ ๊ด‘๋ฒ”์œ„ํ•˜๊ฒŒ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ดˆ๊ธฐํ™” ๊ตฌ๋ฌธ์ด๋ฉฐ, ์ขํžˆ๊ธฐ ๋ณ€ํ™˜์„ ๋ฐฉ์ง€ํ•˜๋ฉฐ, C++ ์˜ ๊ฐ€์žฅ ์„ฑ๊ฐ€์‹  ๊ตฌ๋ฌธ ํ•ด์„์—์„œ ์ž์œ ๋กญ๋‹ค. 2. ์ƒ์„ฑ์ž ์˜ค๋ฒ„๋กœ๋”ฉ ํ•ด์†Œ ๊ณผ์ •์—์„œ ์ค‘๊ด„ํ˜ธ ์ดˆ๊ธฐํ™”๋Š” ๊ฐ€๋Šฅํ•œ ํ•œ std::initializer_list ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ์žˆ๋Š” ์ƒ์„ฑ์ž์™€ ๋ถ€ํ•ฉํ•œ๋‹ค. 3. ๊ด„ํ˜ธ์™€ ์ค‘๊ด„ํ˜ธ์˜ ์„ ํƒ์ด ์˜๋ฏธ ์žˆ๋Š” ์ฐจ์ด๋ฅผ ๋งŒ๋“œ๋Š” ์˜ˆ๋Š” ์ธ์ˆ˜ ๋‘ ๊ฐœ๋กœ std::vector ์„ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์ด๋‹ค. 4. ํ…œํ”Œ๋ฆฟ ์•ˆ์—์„œ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ๊ด„ํ˜ธ๋ฅผ ์‚ฌ์šฉํ•  ๊ฒƒ์ธ์ง€ ์ค‘๊ด„ํ˜ธ..

Tutorials/C++ : Advanced 2022. 10. 26. 09:51
Effective Modern C++ | ํ•ญ๋ชฉ 6 : auto ๊ฐ€ ์›์น˜ ์•Š์€ ํ˜•์‹์œผ๋กœ ์—ฐ์—ญ๋  ๋•Œ๋Š” ๋ช…์‹œ์  ํ˜•์‹์˜ ์ดˆ๊ธฐ์น˜๋ฅผ ์‚ฌ์šฉํ•˜๋ผ

C++ ํ”„๋กœ๊ทธ๋ž˜๋จธ์˜ ํ•„๋…์„œ์ด์ž ๋ฐ”์ด๋ธ”์ธ, ์Šค์ฝง ๋งˆ์ด์–ด์Šค์˜ Modern Effective C++ ๋ฅผ ์ฝ๊ณ  ๊ธฐ์–ตํ•  ๋‚ด์šฉ์„ ์š”์•ฝํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ผญ ์ฝ์–ด๋ณด์‹œ๊ธธ ์ถ”์ฒœ๋“œ๋ฆฝ๋‹ˆ๋‹ค! ํ•ญ๋ชฉ 6 : auto ๊ฐ€ ์›์น˜ ์•Š์€ ํ˜•์‹์œผ๋กœ ์—ฐ์—ญ๋  ๋•Œ๋Š” ๋ช…์‹œ์  ํ˜•์‹์˜ ์ดˆ๊ธฐ์น˜๋ฅผ ์‚ฌ์šฉํ•˜๋ผ ํ•ต์‹ฌ : 1. "๋ณด์ด์ง€ ์•Š๋Š”" ๋Œ€๋ฆฌ์ž ํ˜•์‹ ๋•Œ๋ฌธ์— auto ๊ฐ€ ์ดˆ๊ธฐํ™” ํ‘œํ˜„์‹์˜ ํ˜•์‹์„ "์ž˜๋ชป" ์—ฐ์—ญํ•  ์ˆ˜ ์žˆ๋‹ค. 2. ํ˜•์‹ ๋ช…์‹œ ์ดˆ๊ธฐ์น˜ ๊ด€์šฉ๊ตฌ๋Š” auto ๊ฐ€ ์›ํ•˜๋Š” ํ˜•์‹์„ ์—ฐ์—ญํ•˜๋„๋ก ๊ฐ•์ œํ•œ๋‹ค. ๋‹ค์Œ ์˜ˆ์‹œ๋ฅผ ๋ณด์ž. class Widget {}; std::vector feature(const Widget& w) { return std::vector(10); } void processWidget(Widget w, bool highPriority) { /* D..

Tutorials/C++ : Advanced 2022. 10. 26. 09:50