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

๋ชฉ๋ก์ „์ฒด ๊ธ€ (1099)

KoreanFoodie's Study

Effective Modern C++ | ํ•ญ๋ชฉ 17 : ํŠน์ˆ˜ ๋ฉค๋ฒ„ ํ•จ์ˆ˜๋“ค์˜ ์ž๋™ ์ž‘์„ฑ ์กฐ๊ฑด์„ ์ˆ™์ง€ํ•˜๋ผ

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

Tutorials/C++ : Advanced 2022. 10. 26. 09:55
Effective Modern C++ | ํ•ญ๋ชฉ 16 : const ๋ฉค๋ฒ„ ํ•จ์ˆ˜๋ฅผ ์Šค๋ ˆ๋“œ์— ์•ˆ์ „ํ•˜๊ฒŒ ์ž‘์„ฑํ•˜๋ผ

C++ ํ”„๋กœ๊ทธ๋ž˜๋จธ์˜ ํ•„๋…์„œ์ด์ž ๋ฐ”์ด๋ธ”์ธ, ์Šค์ฝง ๋งˆ์ด์–ด์Šค์˜ Modern Effective C++ ๋ฅผ ์ฝ๊ณ  ๊ธฐ์–ตํ•  ๋‚ด์šฉ์„ ์š”์•ฝํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ผญ ์ฝ์–ด๋ณด์‹œ๊ธธ ์ถ”์ฒœ๋“œ๋ฆฝ๋‹ˆ๋‹ค! ํ•ญ๋ชฉ 16 : const ๋ฉค๋ฒ„ ํ•จ์ˆ˜๋ฅผ ์Šค๋ ˆ๋“œ์— ์•ˆ์ „ํ•˜๊ฒŒ ์ž‘์„ฑํ•˜๋ผ ํ•ต์‹ฌ : 1. ๋™์‹œ์  ๋ฌธ๋งฅ์—์„œ ์“ฐ์ด์ง€ ์•Š์„ ๊ฒƒ์ด ํ™•์‹คํ•œ ๊ฒฝ์šฐ๊ฐ€ ์•„๋‹ˆ๋ผ๋ฉด, const ๋ฉค๋ฒ„ ํ•จ์ˆ˜๋Š” ์Šค๋ ˆ๋“œ์— ์•ˆ์ „ํ•˜๊ฒŒ ์ž‘์„ฑํ•˜๋ผ. 2. std::atomic ๋ณ€์ˆ˜๋Š” mutex ์— ๋น„ํ•ด ์„ฑ๋Šฅ์ƒ์˜ ์ด์ ์ด ์žˆ์ง€๋งŒ, ํ•˜๋‚˜์˜ ๋ณ€์ˆ˜ ๋˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ์žฅ์†Œ๋ฅผ ๋‹ค๋ฃฐ ๋•Œ์—๋งŒ ์ ํ•ฉํ•˜๋‹ค. ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋‹คํ•ญ์‹ ํด๋ž˜์Šค๊ฐ€ ์žˆ๋‹ค๊ณ  ํ•˜์ž. class Polynomial { public: using RootsType = std::vector; RootsType roots() const { // ์บ์‹œ๊ฐ€ ์œ ํšจํ•˜์ง€ ์•Š์œผ๋ฉด ..

Tutorials/C++ : Advanced 2022. 10. 26. 09:54
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