[C++] trivial ํ์
trvial์ด๋ ์ฌ์ ์ ์๋ฏธ๋ก๋ [ํ์ฐฎ์] ๋ฑ์ ์๋ฏธ๋ฅผ ์ง๋๋ ๋จ์ด์ด๋ค.
ํ์ง๋ง c++์์๋ ์ํ์ ์๋ฏธ์์์ trivial(๋จ์ํ ๊ตฌ์กฐ์ ๊ฐ์ฒด)์ ๋ปํ๋ค.
trivial ํ์
์ด๋ ์์ฑ์๋ ์๋ฉธ์, ๋ณต์ฌ์, ์ด๋์ ๋ฑ์ ๊ธฐ๋ณธ ํน์ ๋ฉค๋ฒ๋ค์ด ์๋ฌด๊ฒ๋ ํ์ง ์๋ ํ์
์ด๋ค.
์ด๊ฒ ์ ํ์ํ๊ฐ ํ๋ฉด.. ๊ฐ๋ ์์ฑ์๊ฐ์๊ฒ ํธ์ถ๋์ง ์๋ ๊ธฐ์กด C ๊ธฐ๋ฅ๊ณผ์ ํธํ์ ์ํด์๋ค.
trivialํ ํ์
๋ง์ด ์์ฑ์ ๋ฑ์ ํธ์ถํ์ง ์๋ malloc์ด๋ memcpy๊ฐ์ ๊ธฐ๋ฅ์ ์ฌ์ฉ๋ ์ ์๋ค.
์ด์ ๋ํ ํ๋ณ ๊ธฐ๋ฅ์ <type_traits> ํค๋์ ์ ๋ถ ๋ชจ์ฌ์๋ค.

์ด ๊ฒฝ์ฐ์ ๊ธฐ๋ณธ์์ฑ์ ๋ฑ์ด ์๋ฌด ์ผ๋ ํ์ง ์๋๋ค.

์ด ๊ฒฝ์ฐ์๋ ์๋ฌด ์ผ๋ ํ์ง ์๋๋ค.

์์ฑ์๋ฅผ ๋ฐ๋ก ๊ตฌํํ๋ค. ์ค์์ ์๋ฌด๊ฒ๋ ํ์ง ์์ง๋ง ๋ญ๊ฐ ๊ตฌํ์ ํ๊ธฐ ๋๋ฌธ๋ฉ trivial์ด ์๋๊ฒ ๋๋ค.

์๋ฉธ์๋ฅผ ์ด๋ ๊ฒ ํด๋๋ trivial์ด ์๋๊ฒ ๋๋ค. ๋ค๋ฅธ ๋ถ๋ถ์์ ๋ญ๊ฐ ๊ตฌํ์ด ๋ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค.

๋ฉ์๋์ ์ ๋ฌด๋ ์ค์ํ์ง ์๋ค.

ํ์ง๋ง ๊ฐ์๋ฉ์๋๊ฐ ๋ค์ด๊ฐ๋ค๋ฉด trivial์ ๊นจ์ง๋ค. ๋คํ์ฑ์ ์ง์ํ๊ธฐ ์ํด ๋ฉ๋ชจ๋ฆฌ ์์ ๊ฐ์ํ
์ด๋ธ์ด ์ ์ฌ๋๊ณ , ์ด์ ๋ํ ํฌ์ธํฐ๊ฐ ๋ด์ฅ๋๊ธฐ ๋๋ฌธ์ด๋ค.
์์ฐํ C์์ ์ฐ๊ณ๊ฐ ๊นจ์ง๋ค.

๋ฉค๋ฒ๋ณ์์ ์ ๋ฌด ์์ฒด๋ ์๊ด์๋ค.

ํ์ง๋ง ์ด๋ฌ๋ฉด ์๋ฌต์ ์ผ๋ก ์์ฑ์์์ ํ๋ ์ผ์ด ์๊ฒจ์ trivial์ด ๊นจ์ ธ๋ฒ๋ฆฐ๋ค.
์๋ฌดํผ ์ด๋ฐ์์ผ๋ก ํด์,
is_trivial์
1.๋ชจ๋ ํน์ ๋ฉ์๋๊ฐ default, ํน์ ๋ช
์๋์ง ์์์ผ๋ฉฐ, ์๋ฌด๋ฐ ์ผ์ ํ์ง ์๊ณ ,
2.ํ๋์ ๊ฐ์๋ฉ์๋๋ ์์ ํ์ง ์์์์ ์๊ตฌํ๋ค.
์ด๊ฑธ ๋ง์กฑํ ๋๋ง true๋ฅผ ๋ฐํํด์ค๋ค.
์ธ์ธํ๊ฒ ๋ฐ์ง์๋ฉด ๋ชน์ ๋ง๋ค.
์ฌ๊ธฐ์ ์ด ๊ด๋ จ ์๊ตฌ์ฌํญ๋ค์ด ๋ค ๋ค์ด์๋ค.
