Notice
Recent Posts
Recent Comments
Link
관리 메뉴

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

KoreanFoodie's Study

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++ | ν•­λͺ© 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