C++, of course, has the same choice between virtual methods and templates, "interfaces", inline and external method implementation syntax, etc, although the separate vtables are a nice trick and traits look interesting. So I'm curious about one thing (which would be obvious if I'd used Rust, but isn't apparent on Google):<p>What's the compilation speed like?<p>C++'s tendency to stick template functions in header files is a curse on compilation speed compared to C. Rust's solution is apparently to compile all modules in a crate together, which at least avoids instantiating the same templates more than once when compiling from scratch, but sounds like it would make incremental compilation times even worse. I am interested in Rust, but slow compilation drives me crazy.<p>(And what are the rules for importing classes between crates - how do template functions work, are there any guarantees for changes to a class that won't prevent code that was compiled with an old version from working?)