std::function은 임의 호출 가능 객체를 캡슐화하여 동일성 비교에 대한 고유한 과제를 제시합니다. 이러한 비교를 구현하려면 모든 호출 가능 유형에 대한 동등 비교가 필요하며 이는 구현자에게 상당한 부담을 줍니다. 더욱이 동일한 기능은 서로 다른 인수 바인딩 순서에 따라 동일하지 않은 비교를 생성할 수 있습니다. 따라서 모든 경우에 동등성을 보장하는 불가능한 작업은 동등 비교성을 금지합니다.
C 11 초안에 언급된 "유형 시스템의 가능한 구멍"은 암시적 변환에 내재된 모호성을 의미하는 것 같습니다. 항등 연산자를 삭제하고 명시적 사용을 강제하면 해당 호출에서 생성된 유효한 코드가 없게 됩니다.
std::function과 달리 std::shared_ptr은 명확하게 정의된 항등 의미 체계를 갖습니다. 두 포인터가 모두 비어 있거나 둘 다 동일한 개체를 참조하는 경우 정확하게 동일합니다. 이러한 잘 정의된 동작을 통해 간단하고 의미 있는 동등 비교가 가능해졌습니다.
위 내용은 `std::function` 객체가 동일한지 비교할 수 없는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!