struct S {
S() {}
S (const S &) = delete;
};
void f1 (S s) {}
void f2 (S &s) {}
int main() {
S s;
f2(s);
}
이 삭제됩니다, 왜은 (는) 인수에 전달 선언 때부터 오류가 발생하지 f2
를 사용하여 않습니다 S &s
? f1(s)
을 사용하면 오류가 발생합니다. 삭제 된 함수의 정의를 살펴 봤는데 오류가 발생한다고 생각했지만 그렇지 않습니다. 왜?삭제 된 기능을 사용하는 것이 왜 효과가 있습니까? <code>S(S &s)</code> 이후
나를 혼란스럽게하는 것은'S (const S &) = delete'를 볼 때 나는 생각한다 : *''S & s'와 같이''f2 (S & s2)' 나는 그 논리를 이해하지 못한다. – 0x499602D2
네, 어떻게 이것이 혼란 스러울 지 알 수 있습니다. 그러나 생성자 (특히 단일 매개 변수가있는 것)는 _special_이라는 것을 기억해야합니다. – Fiktik