Notice
Recent Posts
Recent Comments
Link
관리 메뉴

λͺ©λ‘μ „체 κΈ€ (1099)

KoreanFoodie's Study

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++ | ν•­λͺ© 5 : λͺ…μ‹œμ  ν˜•μ‹ μ„ μ–Έλ³΄λ‹€λŠ” auto λ₯Ό μ„ ν˜Έν•˜λΌ

C++ ν”„λ‘œκ·Έλž˜λ¨Έμ˜ ν•„λ…μ„œμ΄μž 바이블인, 슀콧 λ§ˆμ΄μ–΄μŠ€μ˜ Modern Effective C++ λ₯Ό 읽고 κΈ°μ–΅ν•  λ‚΄μš©μ„ μš”μ•½ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. κΌ­ μ½μ–΄λ³΄μ‹œκΈΈ μΆ”μ²œλ“œλ¦½λ‹ˆλ‹€! ν•­λͺ© 5 : λͺ…μ‹œμ  ν˜•μ‹ μ„ μ–Έλ³΄λ‹€λŠ” auto λ₯Ό μ„ ν˜Έν•˜λΌ 핡심 : 1. auto λ³€μˆ˜λŠ” λ°˜λ“œμ‹œ μ΄ˆκΈ°ν™” ν•΄μ•Ό ν•˜λ©°, 이식성 λ˜λŠ” νš¨μœ¨μ„± 문제λ₯Ό μœ λ°œν•  수 μžˆλŠ” ν˜•μ‹ λΆˆμΌμΉ˜κ°€ λ°œμƒν•˜λŠ” κ²½μš°κ°€ 거의 μ—†μœΌλ©°, λŒ€μ²΄λ‘œ λ³€μˆ˜μ˜ ν˜•μ‹μ„ λͺ…μ‹œμ μœΌλ‘œ 지정할 λ•Œλ³΄λ‹€ νƒ€μžλŸ‰λ„ 더 적닀. 2. auto 둜 ν˜•μ‹μ„ μ§€μ •ν•œ λ³€μˆ˜λŠ” ν•­λͺ© 2 와 ν•­λͺ© 6 μ—μ„œ μ„€λͺ…ν•œ λ¬Έμ œμ λ“€μ„ κ²ͺ을 수 μžˆλ‹€. μ•„λž˜ μ˜ˆμ‹œλ₯Ό 보면, auto λ₯Ό μ“°λŠ” 것이 μ—¬λŸ¬λͺ¨λ‘œ ν›Œλ₯­ν•˜λ‹€λŠ” 것을 ν•œλˆˆμ— νŒŒμ•…ν•  수 μžˆμ„ 것이닀. template void print_from_b_to_e(It b, It e)..

Tutorials/C++ : Advanced 2022. 10. 26. 09:50
Effective Modern C++ | ν•­λͺ© 4 : μ—°μ—­λœ ν˜•μ‹μ„ νŒŒμ•…ν•˜λŠ” 방법을 μ•Œμ•„λ‘λΌ

C++ ν”„λ‘œκ·Έλž˜λ¨Έμ˜ ν•„λ…μ„œμ΄μž 바이블인, 슀콧 λ§ˆμ΄μ–΄μŠ€μ˜ Modern Effective C++ λ₯Ό 읽고 κΈ°μ–΅ν•  λ‚΄μš©μ„ μš”μ•½ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. κΌ­ μ½μ–΄λ³΄μ‹œκΈΈ μΆ”μ²œλ“œλ¦½λ‹ˆλ‹€! ν•­λͺ© 4 : μ—°μ—­λœ ν˜•μ‹μ„ νŒŒμ•…ν•˜λŠ” 방법을 μ•Œμ•„λ‘λΌ 핡심 : 1. μ»΄νŒŒμΌλŸ¬κ°€ μ—°μ—­ν•˜λŠ” ν˜•μ‹μ„ IDE νŽΈμ§‘κΈ°λ‚˜ 컴파일러 였λ₯˜ λ©”μ‹œμ§€, Boost TypeIndex 라이브러리λ₯Ό μ΄μš©ν•΄μ„œ νŒŒμ•…ν•  수 μžˆλŠ” κ²½μš°κ°€ λ§Žλ‹€. 2. 일뢀 λ„κ΅¬μ˜ κ²°κ³ΌλŠ” μœ μš©ν•˜μ§€λ„ μ•Šκ³  λΆ€μ •ν™•ν•  수 μžˆμœΌλ―€λ‘œ, C++ 의 ν˜•μ‹ μ—°μ—­ κ·œμΉ™λ“€μ„ μ œλŒ€λ‘œ μ΄ν•΄ν•˜λŠ” 것은 μ—¬μ „νžˆ ν•„μš”ν•œ 일이닀. ν˜•μ‹ μ—°μ—­ 정보λ₯Ό μ–»λŠ” 방법은 μ„Έ 가지 μ‹œμ μœΌλ‘œ λΆ„λ₯˜ν•  수 μžˆλ‹€. 1. IDE νŽΈμ§‘κΈ° 2. 컴파일러의 진단 λ©”μ‹œμ§€ decltype 을 μ‚¬μš©ν•˜λ©΄ λ‹€μŒκ³Ό 같은 경우, νƒ€μž…μ„ 컴파일 νƒ€μž„μ— μ•Œμ•„λ‚Ό 수..

Tutorials/C++ : Advanced 2022. 10. 26. 09:49
Effective Modern C++ | ν•­λͺ© 2 : auto 의 ν˜•μ‹ μ—°μ—­ κ·œμΉ™μ„ μˆ™μ§€ν•˜λΌ

C++ ν”„λ‘œκ·Έλž˜λ¨Έμ˜ ν•„λ…μ„œμ΄μž 바이블인, 슀콧 λ§ˆμ΄μ–΄μŠ€μ˜ Modern Effective C++ λ₯Ό 읽고 κΈ°μ–΅ν•  λ‚΄μš©μ„ μš”μ•½ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. κΌ­ μ½μ–΄λ³΄μ‹œκΈΈ μΆ”μ²œλ“œλ¦½λ‹ˆλ‹€! ν•­λͺ© 2 : auto 의 ν˜•μ‹ μ—°μ—­ κ·œμΉ™μ„ μˆ™μ§€ν•˜λΌ 핡심 : 1. auto ν˜•μ‹ 연역은 λŒ€μ²΄λ‘œ ν…œν”Œλ¦Ώ ν˜•μ‹ μ—°μ—­κ³Ό κ°™μ§€λ§Œ, auto ν˜•μ‹ 연역은 μ€‘κ΄„ν˜Έ μ΄ˆκΈ°μΉ˜κ°€ std::initializer_list λ₯Ό λ‚˜νƒ€λ‚Έλ‹€κ³  κ°€μ •ν•˜λŠ” 반면, ν…œν”Œλ¦Ώ ν˜•μ‹ 연역은 그렇지 μ•Šλ‹€λŠ” 차이가 μžˆλ‹€. 2. ν•¨μˆ˜μ˜ λ°˜ν™˜ ν˜•μ‹μ΄λ‚˜ λžŒλ‹€ λ§€κ°œλ³€μˆ˜μ— 쓰인 auto 에 λŒ€ν•΄μ„œλŠ” auto ν˜•μ‹ 연역이 μ•„λ‹ˆλΌ ν…œν”Œλ¦Ώ ν˜•μ‹ 연역이 μ μš©λœλ‹€. ν•œ 가지 κΈ°μ΄ν•œ μ˜ˆμ™Έλ₯Ό λΉΌλ©΄, auto ν˜•μ‹ 연역이 곧 ν…œν”Œλ¦Ώ ν˜•μ‹ 연역이닀. κ·Έ κΈ°μ΄ν•œ ν•œ 가지 λ‹€λ₯Έ μ˜ˆμ™Έλ₯Ό 보자. #include #i..

Tutorials/C++ : Advanced 2022. 10. 26. 09:48
Effective Modern C++ | ν•­λͺ© 1 : ν…œν”Œλ¦Ώ ν˜•μ‹ μ—°μ—­ κ·œμΉ™μ„ μˆ™μ§€ν•˜λΌ

C++ ν”„λ‘œκ·Έλž˜λ¨Έμ˜ ν•„λ…μ„œμ΄μž 바이블인, 슀콧 λ§ˆμ΄μ–΄μŠ€μ˜ Modern Effective C++ λ₯Ό 읽고 κΈ°μ–΅ν•  λ‚΄μš©μ„ μš”μ•½ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. κΌ­ μ½μ–΄λ³΄μ‹œκΈΈ μΆ”μ²œλ“œλ¦½λ‹ˆλ‹€! ν•­λͺ© 1 : ν…œν”Œλ¦Ώ ν˜•μ‹ μ—°μ—­ κ·œμΉ™μ„ μˆ™μ§€ν•˜λΌ 핡심 : 1. ν…œν”Œλ¦Ώ ν˜•μ‹ μ—°μ—­ 도쀑 μ°Έμ‘° ν˜•μ‹μ˜ μΈμˆ˜λ“€μ€ λΉ„μ°Έμ‘°λ‘œ μ·¨κΈ‰λœλ‹€. 즉, 참쑰성이 λ¬΄μ‹œλœλ‹€. 2. 보편 μ°Έμ‘° λ§€κ°œλ³€μˆ˜μ— λŒ€ν•œ ν˜•μ‹ μ—°μ—­ κ³Όμ •μ—μ„œ μ™Όκ°’ μΈμˆ˜λ“€μ€ νŠΉλ³„ν•˜κ²Œ μ·¨κΈ‰λœλ‹€. 3. κ°’ 전달 λ°©μ‹μ˜ λ§€κ°œλ³€μˆ˜μ— λŒ€ν•œ ν˜•μ‹ μ—°μ—­ κ³Όμ •μ—μ„œ const λ˜λŠ” volatile(λ˜λŠ” κ·Έ λ‘˜ 닀인) μΈμˆ˜λŠ” λΉ„ const, λΉ„ volatile 인수둜 μ·¨κΈ‰λœλ‹€. 4. ν…œν”Œλ¦Ώ ν˜•μ‹ μ—°μ—­ κ³Όμ •μ—μ„œ λ°°μ—΄μ΄λ‚˜ ν•¨μˆ˜ 이름에 ν•΄λ‹Ήν•˜λŠ” μΈμˆ˜λŠ” ν¬μΈν„°λ‘œ λΆ•κ΄΄ν•œλ‹€. 단, 그런 μΈμˆ˜κ°€ μ°Έμ‘°λ₯Ό μ΄ˆκΈ°ν™”ν•˜λŠ”λ° μ“°μ΄λŠ” 경우,..

Tutorials/C++ : Advanced 2022. 10. 26. 09:48
κ²Œμž„μˆ˜ν•™ - 행렬을 μ΄μš©ν•œ νšŒμ „λ³€ν™˜

μ΄λ“μš°λ‹˜μ˜ 'μ΄λ“μš°μ˜ κ²Œμž„μˆ˜ν•™' 책을 보며 쒋은 λ‚΄μš©μ„ μ •λ¦¬ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. 더 μžμ„Έν•œ λ‚΄μš©μ΄ κΆκΈˆν•˜μ‹œλ‹€λ©΄, 책을 ꡬ맀해 직접 μ½μ–΄λ³΄μ‹œκΈ°λ₯Ό μΆ”μ²œλ“œλ¦½λ‹ˆλ‹€! 행렬을 μ΄μš©ν•œ νšŒμ „λ³€ν™˜ 행렬을 μ΄μš©ν•΄ μ–΄λ–€ 물체λ₯Ό λ°˜μ‹œκ³„ λ°©ν–₯으둜 90 도 νšŒμ „μ‹œν‚€λŠ” 행렬을 κ΅¬ν•œλ‹€κ³  생각해 보자. μœ„μ˜ 그림을 보면, 두 벑터가 λ‹€μŒκ³Ό 같이 λ³€ν™˜λœλ‹€. ν‘œμ€€κΈ°μ €λ²‘ν„° e1 : (1, 0) -> (0, 1) ν‘œμ€€κΈ°μ €λ²‘ν„° e2 : (0, 1) -> (-1, 0) λ”°λΌμ„œ λ°˜μ‹œκ³„λ‘œ 90 도 νšŒμ „ λ³€ν™˜μ„ μˆ˜ν–‰ν•˜λŠ” 행렬을 λ‹€μŒκ³Ό 같이 섀계할 수 μžˆλ‹€. μ‹œκ³„λ°©ν–₯으둜 90 도 νšŒμ „μ„ ν•˜λŠ” κ²½μš°λŠ” λ‹€μŒκ³Ό 같을 것이닀 : 사싀 90 도 νšŒμ „μ˜ κ²½μš°λŠ” 행렬을 μ‚¬μš©ν•˜μ§€ μ•Šκ³  κ°„λ‹¨ν•˜κ²Œ λ‹€μŒκ³Ό 같이 ꡬ할 수 μžˆλ‹€. - μ‹œκ³„ λ°©ν–₯으둜 90 도 νšŒμ „ : (x, y) ..

Game Dev/Game Math 2022. 10. 26. 07:03
Effective C++ | ν•­λͺ© 54 : TR1 을 ν¬ν•¨ν•œ ν‘œμ€€ 라이브러리 κ΅¬μ„±μš”μ†Œμ™€ νŽΈμ•ˆν•œ μΉœκ΅¬κ°€ 되자

C++ ν”„λ‘œκ·Έλž˜λ¨Έμ˜ ν•„λ…μ„œμ΄μž 바이블인, 슀콧 λ§ˆμ΄μ–΄μŠ€μ˜ Modern Effective C++ λ₯Ό 읽고 κΈ°μ–΅ν•  λ‚΄μš©μ„ μš”μ•½ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. κΌ­ μ½μ–΄λ³΄μ‹œκΈΈ μΆ”μ²œλ“œλ¦½λ‹ˆλ‹€! ν•­λͺ© 54 : TR1 을 ν¬ν•¨ν•œ ν‘œμ€€ 라이브러리 κ΅¬μ„±μš”μ†Œμ™€ νŽΈμ•ˆν•œ μΉœκ΅¬κ°€ 되자 핡심 : 1. μ΅œμ΄ˆμ— μƒμ •λœ C++ ν‘œμ€€ 라이브러리의 μ£Όμš” κ΅¬μ„±μš”μ†ŒλŠ” STL, iostream, λ‘œμΌ€μΌ 등이닀. 2. TR1 이 λ„μž…λ˜λ©΄μ„œ μΆ”κ°€λœ 것은 슀마트 포인터, μΌλ°˜ν™” ν•¨μˆ˜, ν•΄μ‹œ 기반 μ»¨ν…Œμ΄λ„ˆ, μ •κ·œ ν‘œν˜„μ‹ 등등이닀 3. TR1 μžμ²΄λŠ” λ‹¨μˆœνžˆ λͺ…μ„Έμ„œμ΄λ©°, TR1 κΈ°λŠ₯을 μ‚¬μš©ν•˜κΈ° μœ„ν•΄μ„œλŠ” λͺ…μ„Έλ₯Ό κ΅¬ν˜„ν•œ μ½”λ“œλ₯Ό ꡬ해야 ν•œλ‹€. λŒ€ν‘œμ μΈ 자료처 쀑 ν•œ ꡰ데가 λ°”λ‘œ λΆ€μŠ€νŠΈμ΄λ‹€. 사싀 ν•΄λ‹Ή 책은 ν˜„μž¬ μ‹œμ (2022λ…„) μœΌλ‘œλΆ€ν„° 7λ…„ 전에 λ‚˜μ˜¨ κ°œμ •νŒμ΄λ―€λ‘œ, μ±…μ—μ„œ ..

Tutorials/C++ : Advanced 2022. 10. 26. 06:31