&gt; C runtimes do add extra issues but that&#x27;s not relevant to my comment.<p>I really don&#x27;t see how it is. If you&#x27;re running on a desktop platform, you&#x27;ve got a huge exposed surface that is working with raw pointers to proprietary logic. That makes provable correctness a far, far more complex problem.<p>&gt; I said I largely came up dry on methods to prove correctness of C++ code.<p>It is easy to implement a smart pointer that the compiler can <i>prove</i> will always do bounds checking before dereferencing. The hard part is proving that all the code that uses raw pointers is doing the same thing.