[Philosophy]
P.2 ISO 표준 C++ 사용해라
단, 일부 환경에서는 표준 C++ feature 사용이 제한되는 경우가 있다.
(예) 항공기 제어 SW 의 경우 동적할당을 피하는 것을 권고하고 있다.
P.3 의도를 표현해라
// bad case
gsl::index i = 0;
while( i < v.size())
{
// ... do something with v[i] ...
}
// better case
for(const auto& x : v)
{
∕* do something with the value of x *∕
}
for(auto& x : v)
{
∕* do something with the value of x *∕
}
bad case
이유1 v의 element를 활용하겠다는 의도가 없음,
이유2 index i 가 loop밖에 노출됨(의도하지 않음)
프로그래머는 "The guidelines support library", "The ISO C++ Standard library"에 친숙해져야 한다.
draw_line(int, int, int, int); //모호함
draw_line(Point, Point); //분명함
제공되는 기본 자료형보다 의도하는 내용을 표현할 수 있는 구조체, 클래스를 생성하여 활용하면 더 좋다.
Guidlines : Enfocement
1. 기본 for반복문 vs 범위기반 반복문 : 가급적 의도를 확인할 수 있도록 범위기반 반복문 사용
2. f(T*, int) interface vs f(span<T>) interface : gsl의 span 사용
3. 기본 new, delete 사용 확인 : 문제가 있을 수 있으므로 유의해서 사용
4. 함수에 너무 많은 기본형 타입의 파라미터 사용 지양
'기타 프로그래밍' 카테고리의 다른 글
[C++] 문자열의 거의 모든 것 (0) | 2022.05.12 |
---|---|
[C++] 표준 자료구조(컨테이너) vector, list, deque(queue) (0) | 2022.05.12 |
[C++] const vs constexpr | 상수 선언하기 (0) | 2022.05.11 |
[C++] C++ Core Guidelines (C++ 핵심 가이드라인) - P.1 (0) | 2022.02.20 |
[C++] 배열의 call by reference (0) | 2022.01.10 |
댓글