▲ | ynik 7 months ago | ||||||||||||||||||||||
That only works for C++ code using C++20 modules (i.e. for approximately nothing). With textual includes, you need to be able to switch back and forth the edition within a single compilation unit. | |||||||||||||||||||||||
▲ | humanrebar 7 months ago | parent | next [-] | ||||||||||||||||||||||
It's not clear that modules alone will solve One Definition Rule issues that you're describing. It's actually more likely that programs will have different object files building against different Built Module Interfaces for the same module interface. Especially for widely used modules like the standard std one. But! We'll be able to see all the extra parsing happen so in theory you could track down the incompatibilities and do something about them. | |||||||||||||||||||||||
▲ | bluGill 7 months ago | parent | prev | next [-] | ||||||||||||||||||||||
Modules are starting to come out. They have some growing pains, but they are now ready for early adopters and are looking like they will be good. I'm still in wait and see mode (I'm not an early adopter), but so far everything just looks like growing pains that will be solved and then they will take off. | |||||||||||||||||||||||
| |||||||||||||||||||||||
▲ | epage 7 months ago | parent | prev [-] | ||||||||||||||||||||||
Mixing editions in a file happens in Rust with the macro system. You write a macro to generate code in your edition and the generation happens in the callers crate, no matter what edition it is. |