| Not my area of expertise, but a little googling yields: "SAFECode performance was reduced on average by a factor of 41.72 times, and the
average slowdown for SoftBound was 5.36 (that is, a program runs 5.36 times slower with bounds
checking than without it)." [1] As for the C versus C++ question, I don't take a position on that. The practicality of sticking with straight C (or some subset) will vary by project. SaferCPlusPlus just introduces a memory-safe subset of C++ as an option. But a subset that doesn't require the re-architecting of existing C/C++ code as it provides safe compatible substitutes for C/C++'s unsafe elements. > People stuck in legacy codebases might want to apply or improve on Ironclad, though. SaferCPlusPlus only exists because Ironclad was/is not a practical solution. In particular because Ironclad is abandonware. In my opinion, Ironclad was a brilliant and impressive solution. SaferCPlusPlus strives to be a solution in the same vein, but one that takes advantage of modern C++ in its implementation. The non-viability of Ironclad exposed key problems shared with many other approaches. Namely, portability and, more importantly, dependency risk. SaferCPlusPlus is just a simple open source library written in pure, portable C++. It works on any platform with a reasonably modern C++ compiler. If you adopt it and at some point in the future it becomes abandonware, there is no risk to your project. It will continue to build properly, and the code won't be stuck with some idiosyncratic paradigm that will interfere with future coding strategies. And the library is simple enough that it should be fairly easy to add new features or customizations as needed. [1] https://www.semanticscholar.org/paper/Performance-of-Compile... |
"SaferCPlusPlus just introduces a memory-safe subset of C++ as an option."
True. This has at least basic benefit.
" Namely, portability and, more importantly, dependency risk."
What was the portability issue?
"there is no risk to your project. It will continue to build properly, and the code won't be stuck with some idiosyncratic paradigm that will interfere with future coding strategies. "
This would be a good selling point to enterprise customers or large FOSS projects that use C++.