const returnType Function(const paramType&) const { ..... }
제가이해한게 여기서 3번째(밑줄) const에 대해서만 오버로딩이 가능한 것 같은데 맞나요?
오버로딩 가능:
T& operator[](int i);
const T& operator[](int i) const;
오버로딩 안됨:
void f1(int i);
void f1(const int i);
해봤을땐 그런거 같긴한데 정확한 documentation을 못찾겠어서..
int→const int로 암시적 변환이 일어납니다 - dc App
그럼 const로 암시적 변환이 안되는 타입은 argument에서도 오버로딩할수있나요?
아 아니면 컴파일에러가 컴파일러가 무슨함수를 써야할지 결정못할때 나는건가요
네 - dc App
표준을 직접 찾아봄 1. function type을 계산할 때 function parameter list 에서 top-level cv-qualifier는 무시됨 2. require-clause가 다르면(여기에서는 const가 있고 없고의 차이) parameter list가 같아도 됨(다만 static일 경우는 제외)
require clause가
https://ence2.github.io/2021/01/c-20-%EB%A6%AC%EC%84%9C%EC%B9%98-requires-%EC%A0%88-concept6/
여기서 말하는거 맞나요? 그럼 멤버함수의 const가 require clause로 쓰이는건가요