Do you want C++ compiler to also prevent data races? Then use const functions by default, seriously.<p><a href="http:&#x2F;&#x2F;youtu.be&#x2F;Y1KOuFYtTF4" rel="nofollow">http:&#x2F;&#x2F;youtu.be&#x2F;Y1KOuFYtTF4</a>
(starts at 29:00)<p>C++ template meta programming language is such a powerful and expressive tool for writing libraries and safe abstraction. Imagine if all the effort of 8 years of Rust team went into a modern C++ safety library.<p>Such a library would have been more useful contribution and more people would have benefited.