{
"$type": "site.standard.document",
"bskyPostRef": {
"cid": "bafyreidm52tmabzx35xhtib6mrwbozxoilxww57c7hilab5lsn627abgwi",
"uri": "at://did:plc:ivbknywyskln22er3nkssdhl/app.bsky.feed.post/3mnveb4vz5pw2"
},
"path": "/t/pre-rfc-explicit-overload-sets-for-mixed-arity-function-calls/24372#post_14",
"publishedAt": "2026-06-09T23:26:34.000Z",
"site": "https://internals.rust-lang.org",
"textContent": "Almost every language feature can be abused. Generics, traits, operator overloading (famously Java does not have operator overloading for this reason). I don't think the solution is to not provide powerful features; rather, you should trust your users (and I agree that we should prefer features that are harder to misuse).\n\nRust doesn't need overloading on its own and so shouldn't have them; But interop with C++ does, and even if it's not important to you (or not that important to you), there are many important projects that it is vital for them. Basically, every legacy project that is written in C++ and wants to adopt Rust. I definitely wouldn't state that \"I would rather not have the FFI with C++ at all if that is a requirement\".\n\nAlso, while I agree that C++'s overloading rules are quite bad, we don't need to have them (and the current proposal doesn't propose them). We need to have _some_ overloading (with possibility to differentiate by arity and types).",
"title": "Pre-RFC: Explicit overload sets for mixed-arity function calls"
}