std::function 封裝了任意可調用對象,為相等比較提出了獨特的挑戰。實現這種比較需要所有可調用類型的相等可比性,這會給實現者帶來很大的負擔。此外,相同的功能可能會根據不同的參數綁定順序產生不相等的比較。因此,在所有情況下保證等價這一不可能的任務會阻礙相等可比性。
C 11 草案中提到的「類型系統中可能存在的漏洞」可能指的是隱式轉換中固有的歧義。刪除相等運算子並強制明確使用可確保不存在從其呼叫產生的有效程式碼。
與 std::function 不同,std::shared_ptr 有明確定義的相等語意。當兩個指標都為空或都引用同一個物件時,兩個指標精確相等。這種明確定義的行為允許簡單且有意義的相等比較。
以上是為什麼我無法比較 `std::function` 物件是否相等?的詳細內容。更多資訊請關注PHP中文網其他相關文章!