일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- 게임
- Effective c++
- operator new
- lua
- 반복자
- 참조자
- 영화
- virtual function
- 예외
- 티스토리챌린지
- 언리얼
- universal reference
- effective stl
- implicit conversion
- 암시적 변환
- 보편 참조
- UE4
- std::async
- 오블완
- iterator
- reference
- c++
- 스마트 포인터
- effective modern c++
- 상속
- exception
- 영화 리뷰
- more effective c++
- resource management class
- Smart Pointer
- Today
- Total
목록enum (2)
스토리텔링 개발자
항목 10. 범위 없는 enum보다 범위 있는 enum을 선호하라 enum과 enum class의 범위일반적으로는 중괄호가 범위이다.헌데, C++98 스타일의 enum은 이 일반적인 규칙이 적용되지 않는다.enum Color { black, white, red }; // 범위 없는 enum(unscoped enum)auto white = false; // 이미 white가 선언되어 있다는 에러!C++11의 범위 있는 enum(scoped enum, enum class)는 이름 누수가 발생하지 않는다.enum class Color { black, white, red }; // 범위 있는 enum(scoped enum)auto white = false; // 성공Color c = white; // whi..
항목 2. #define을 쓰려거든 const, enum, inline을 떠올리자 선행 처리자(define)의 문제선행처리자는 컴파일러로 넘어가기 전에 숫자 상수로 대체된다.컴파일러 기호 테이블에 선행처리자 상수 이름은 들어가지 않는다.선행처리자의 이름으로 디버깅할 수 없다.선행처리자는 대부분 const로 대체 가능하므로 const로 대체하도록 하자. const 정의 시 주의할 점상수 포인터를 정의하는 경우, const를 붙여주는 위치를 주의해야 한다.포인터를 const로 할 것인가, 가리키는 대상을 const로 할 것인가에 따라 const 위치가 달라진다.차라리 둘 다 const를 붙여서 모호성을 제거해주는 게 나을 것이다. 클래스 멤버로 상수를 정의하는 경우static 멤버로 해주는 편이 좋..