[C++] trivial ํƒ€์ž…

trvial์ด๋ž€ ์‚ฌ์ „์  ์˜๋ฏธ๋กœ๋Š” [ํ•˜์ฐฎ์€] ๋“ฑ์˜ ์˜๋ฏธ๋ฅผ ์ง€๋‹ˆ๋Š” ๋‹จ์–ด์ด๋‹ค.
ํ–์ง€๋งŒ c++์—์„œ๋Š” ์ˆ˜ํ•™์  ์˜๋ฏธ์—์„œ์˜ trivial(๋‹จ์ˆœํ•œ ๊ตฌ์กฐ์˜ ๊ฐ์ฒด)์„ ๋œปํ•œ๋‹ค.
trivial ํƒ€์ž…์ด๋ž€ ์ƒ์„ฑ์ž๋‚˜ ์†Œ๋ฉธ์ž, ๋ณต์‚ฌ์ž, ์ด๋™์ž ๋“ฑ์˜ ๊ธฐ๋ณธ ํŠน์ˆ˜ ๋ฉค๋ฒ„๋“ค์ด ์•„๋ฌด๊ฒƒ๋„ ํ•˜์ง€ ์•Š๋Š” ํƒ€์ž…์ด๋‹ค.

์ด๊ฒŒ ์™œ ํ•„์š”ํ•œ๊ฐ€ ํ•˜๋ฉด.. ๊ฐ€๋” ์ƒ์„ฑ์ž๊ฐ™์€๊ฒŒ ํ˜ธ์ถœ๋˜์ง€ ์•Š๋Š” ๊ธฐ์กด C ๊ธฐ๋Šฅ๊ณผ์˜ ํ˜ธํ™˜์„ ์œ„ํ•ด์„œ๋‹ค.
trivialํ•œ ํƒ€์ž…๋งŒ์ด ์ƒ์„ฑ์ž ๋“ฑ์„ ํ˜ธ์ถœํ•˜์ง€ ์•Š๋Š” malloc์ด๋‚˜ memcpy๊ฐ™์€ ๊ธฐ๋Šฅ์— ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๋‹ค.

์ด์— ๋Œ€ํ•œ ํŒ๋ณ„ ๊ธฐ๋Šฅ์€ <type_traits> ํ—ค๋”์— ์ „๋ถ€ ๋ชจ์—ฌ์žˆ๋‹ค.


image

image ์ด ๊ฒฝ์šฐ์—” ๊ธฐ๋ณธ์ƒ์„ฑ์ž ๋“ฑ์ด ์•„๋ฌด ์ผ๋„ ํ•˜์ง€ ์•Š๋Š”๋‹ค.



image

image ์ด ๊ฒฝ์šฐ์—๋„ ์•„๋ฌด ์ผ๋„ ํ•˜์ง€ ์•Š๋Š”๋‹ค.



image

image ์ƒ์„ฑ์ž๋ฅผ ๋”ฐ๋กœ ๊ตฌํ˜„ํ–ˆ๋‹ค. ์‹ค์ƒ์€ ์•„๋ฌด๊ฒƒ๋„ ํ•˜์ง€ ์•Š์ง€๋งŒ ๋ญ”๊ฐ€ ๊ตฌํ˜„์„ ํ–ˆ๊ธฐ ๋•Œ๋ฌธ๋ฉ” trivial์ด ์•„๋‹ˆ๊ฒŒ ๋œ๋‹ค.



image

image ์†Œ๋ฉธ์ž๋ฅผ ์ด๋ ‡๊ฒŒ ํ•ด๋†”๋„ trivial์ด ์•„๋‹ˆ๊ฒŒ ๋œ๋‹ค. ๋‹ค๋ฅธ ๋ถ€๋ถ„์—์„œ ๋ญ”๊ฐ€ ๊ตฌํ˜„์ด ๋  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.



image

image ๋ฉ”์„œ๋“œ์˜ ์œ ๋ฌด๋Š” ์ค‘์š”ํ•˜์ง€ ์•Š๋‹ค.



image

image ํ•˜์ง€๋งŒ ๊ฐ€์ƒ๋ฉ”์„œ๋“œ๊ฐ€ ๋“ค์–ด๊ฐ„๋‹ค๋ฉด trivial์€ ๊นจ์ง„๋‹ค. ๋‹คํ˜•์„ฑ์„ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•ด ๋ฉ”๋ชจ๋ฆฌ ์ƒ์— ๊ฐ€์ƒํ…Œ์ด๋ธ”์ด ์ ์žฌ๋˜๊ณ , ์ด์— ๋Œ€ํ•œ ํฌ์ธํ„ฐ๊ฐ€ ๋‚ด์žฅ๋˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
์ž์—ฐํžˆ C์™€์˜ ์—ฐ๊ณ„๊ฐ€ ๊นจ์ง„๋‹ค.



image

image ๋ฉค๋ฒ„๋ณ€์ˆ˜์˜ ์œ ๋ฌด ์ž์ฒด๋Š” ์ƒ๊ด€์—†๋‹ค.



image

image ํ•˜์ง€๋งŒ ์ด๋Ÿฌ๋ฉด ์•”๋ฌต์ ์œผ๋กœ ์ƒ์„ฑ์ž์—์„œ ํ•˜๋Š” ์ผ์ด ์ƒ๊ฒจ์„œ trivial์ด ๊นจ์ ธ๋ฒ„๋ฆฐ๋‹ค.

์•„๋ฌดํŠผ ์ด๋Ÿฐ์‹์œผ๋กœ ํ•ด์„œ,
is_trivial์€
1.๋ชจ๋“  ํŠน์ˆ˜ ๋ฉ”์„œ๋“œ๊ฐ€ default, ํ˜น์€ ๋ช…์‹œ๋˜์ง€ ์•Š์•˜์œผ๋ฉฐ, ์•„๋ฌด๋Ÿฐ ์ผ์„ ํ•˜์ง€ ์•Š๊ณ ,
2.ํ•˜๋‚˜์˜ ๊ฐ€์ƒ๋ฉ”์„œ๋“œ๋„ ์†Œ์œ ํ•˜์ง€ ์•Š์•˜์Œ์„ ์š”๊ตฌํ•œ๋‹ค.
์ด๊ฑธ ๋งŒ์กฑํ• ๋•Œ๋งŒ true๋ฅผ ๋ฐ˜ํ™˜ํ•ด์ค€๋‹ค.

์„ธ์„ธํ•˜๊ฒŒ ๋”ฐ์ง€์ž๋ฉด ๋ชน์‹œ ๋งŽ๋‹ค.
์—ฌ๊ธฐ์— ์ด ๊ด€๋ จ ์š”๊ตฌ์‚ฌํ•ญ๋“ค์ด ๋‹ค ๋“ค์–ด์žˆ๋‹ค. image

image https://en.cppreference.com/w/cpp/header/type_traits

https://narss.tistory.com/m/entry/trivial