&quot;That&#x27;s kind of already happened. Stroustrup has done a whole ton of work in that area with Concepts.&quot;<p>Wasn&#x27;t aware of that. It was an interesting read. Thanks for mentioning it.<p>&quot;It turns out that provable correctness invariably involves a fair bit of complexity&quot;<p>I wasn&#x27;t even talking about that. I just looked for static analysis tools that could reliably find common implementation flaws or interface issues with little to no false positives. These already exist for C, Java, Ada, C#, and academic languages. Similarly, some verification or foundation of standard library like Modula-3&#x27;s or the one for C. I found little to nothing of any of this for C++. So, the C++ verifications would all be visual and manual unless you pay big $$$ for one of few commercial tools.<p>Unacceptable. Formal methods would make C++ unacceptable for even more reasons.<p>&quot;This stuff goes back a way, but stemmed from Modern C++ Design.&quot;<p>Same book pjmp recommended. Guess the study should start with it.<p>&quot;You can override operator-&gt; to make it behave more like a proper pointer. CRTP gives you some pretty powerful ways of getting the job done too.&quot;<p>Interesting example. I think one test of C++&#x27;s safety would be whether such methods can provide same protections that Ada provides where applicable to both languages:<p><a href="http:&#x2F;&#x2F;www.adacore.com&#x2F;knowledge&#x2F;technical-papers&#x2F;safe-secure&#x2F;" rel="nofollow">http:&#x2F;&#x2F;www.adacore.com&#x2F;knowledge&#x2F;technical-papers&#x2F;safe-secur...</a><p>It would need to catch the problems, do it during compile phase, and do it fast enough to be productive. I heard bad things about C++ compile phase in the past, esp for template heavy code. Plus, needs design-by-contract as Eiffel and SPARK have shown. I&#x27;ve seen it done with asserts and object constructors&#x2F;destructors so that&#x27;s probably not a problem. The other stuff, esp static analysis for memory &amp; concurrency safety, is where C++ will be judged most.