4 ms·
True, those are even more places where C++ can implicitly allocate. The operator overloading also applies to Rust. Rust has no implicit conversions though, whic
by dthul 6y ago
True, those are even more places where C++ can implicitly allocate.
The operator overloading also applies to Rust. Rust has no implicit conversions though, which are arguably worse since they are invisible (that's why I usually mark all my expensive single argument constructors as "explicit").
- pjmlp 6y agoSure it has, you cannot ensure Deref implementations don't allocate.
- dthul 6y agoWhile technically true, the documentation makes it very clear that Deref should only be implemented for smart pointers and never fail. So no allocations in practice.
- pjmlp 6y agoAh problem solved then, we just need to document very clear that C code should not corrupt memory, how did I never thought of it.