๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

C++172

Structured Bindings์˜ ๋ชจ๋“  ๊ฒƒ Structured Bindings๋Š” C++17์—์„œ ๋„์ž…๋œ ๊ธฐ๋Šฅ์œผ๋กœ, ๋ณตํ•ฉ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ(์˜ˆ: std::tuple, std::pair, ๋ฐฐ์—ด, ๊ตฌ์กฐ์ฒด ๋“ฑ)์—์„œ ์—ฌ๋Ÿฌ ๊ฐ’์„ ๋™์‹œ์— ์ถ”์ถœํ•˜๊ณ , ๊ฐ๊ฐ์„ ๋ณ„๋„์˜ ๋ณ€์ˆ˜์— ๋ฐ”์ธ๋”ฉํ•  ์ˆ˜ ์žˆ๋Š” ํŽธ๋ฆฌํ•œ ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ํŠนํžˆ ํŠœํ”Œ์ด๋‚˜ ์‚ฌ์šฉ์ž ์ •์˜ ๊ตฌ์กฐ์ฒด์—์„œ ์œ ์šฉํ•˜๋ฉฐ, ์ฝ”๋“œ์˜ ๊ฐ€๋…์„ฑ๊ณผ ํŽธ์˜์„ฑ์„ ํฌ๊ฒŒ ํ–ฅ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค.1. ๊ธฐ๋ณธ ๊ฐœ๋…Structured Bindings๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด, ๋ณตํ•ฉ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์—์„œ ๊ฐ ์š”์†Œ๋ฅผ ์‰ฝ๊ฒŒ ๋ถ„ํ•ดํ•˜์—ฌ ๊ฐ๊ฐ์˜ ๋ณ€์ˆ˜์— ๋‹ด์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” auto ํ‚ค์›Œ๋“œ์™€ ์œ ์‚ฌํ•œ ๋ฌธ๋ฒ•์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌํ˜„๋ฉ๋‹ˆ๋‹ค.๊ธฐ๋ณธ ์‚ฌ์šฉ๋ฒ•:auto [var1, var2, var3] = someTuple;์—ฌ๊ธฐ์„œ someTuple์€ ๋ณตํ•ฉ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์ด๊ณ , [var1, var2, var3]๋Š” .. 2024. 8. 27.
if-init์˜ ๋ชจ๋“  ๊ฒƒ(if๋ฌธ ๋‚ด์—์„œ ๋ณ€์ˆ˜ ์„ ์–ธ, ์ดˆ๊ธฐํ™”) if-init ๋ฌธ๋ฒ•C++17์—์„œ ๋„์ž…๋œ if-init ๋ฌธ๋ฒ•์€ if ์กฐ๊ฑด๋ฌธ์—์„œ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•˜๊ณ  ์ดˆ๊ธฐํ™”ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์ฝ”๋“œ์˜ ๊ฐ€๋…์„ฑ์„ ๋†’์ด๊ณ , ๋ณ€์ˆ˜์˜ ์Šค์ฝ”ํ”„(์œ ํšจ ๋ฒ”์œ„)๋ฅผ if ๋ฌธ ๋‚ด๋ถ€๋กœ ์ œํ•œํ•˜์—ฌ ๋” ์•ˆ์ „ํ•˜๊ณ  ๋ช…ํ™•ํ•œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.1. ๊ธฐ๋ณธ ๊ฐœ๋…๊ธฐ์กด์˜ if ์กฐ๊ฑด๋ฌธ์—์„œ๋Š” ์กฐ๊ฑด๋ฌธ ์™ธ๋ถ€์—์„œ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•˜๊ณ  ์ดˆ๊ธฐํ™”ํ•œ ํ›„, ์ด ๋ณ€์ˆ˜๋ฅผ if ์กฐ๊ฑด์—์„œ ์‚ฌ์šฉํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ C++17๋ถ€ํ„ฐ๋Š” if ๋ฌธ ์•ˆ์—์„œ ๋ณ€์ˆ˜ ์„ ์–ธ๊ณผ ์ดˆ๊ธฐํ™”๋ฅผ ํ•จ๊ป˜ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.๊ธฐ์กด ๋ฐฉ์‹ (C++17 ์ด์ „):int x = getValue();if (x > 0) { std::cout if-init ์‚ฌ์šฉ ๋ฐฉ์‹ (C++17):if (int x = getValue(); x > 0) { std:.. 2024. 8. 26.