|
|
|
|
|
by orlp
1721 days ago
|
|
Rust sidesteps issues like this entirely through its Editions. Code from different editions can all each other, but editions can introduce breaking changes. For example, in Rust 2018 and earlier calling arr.into_iter() on an array type would result in an iterator over references of elements of arr (which is the expected result of .iter(), but not .into_iter()). In Rust 2021 this is fixed and arr.into_iter() will take ownership of the array and return an iterator over the values themselves. But old crates that are specified to compile using Rust 2018 will still work, and you can still call them from Rust 2021 without problems. If the C++ committee ever wants to fix its language it must introduce such backwards-incompatible changes. With the advent of modules this should be possible, you could compile each module using different editions yet still call each other. |
|
Without this, evolution of a language is severely limited.