생략 가능한 값인지 판단한다
항상 같은 정책값인지, 호출마다 의미가 달라지는 값인지 분리한다.
기본값은 함수 선언에 붙는 호출 규칙이다. 오버로드, 헤더 배포, 의미 변화와 얽히면 호출자가 어떤 값을 생략했는지 흐려질 수 있다.
항상 같은 정책값인지, 호출마다 의미가 달라지는 값인지 분리한다.
기본 인자 때문에 두 함수가 같은 호출 형태를 받아 모호해질 수 있다.
라이브러리 헤더의 기본값을 바꾸면 기존 바이너리와 재컴파일 범위가 문제가 된다.
struct ConnectOptions {
std::chrono::milliseconds timeout{1000};
int retries{3};
};
void connect(Server server, ConnectOptions options = {});