Open intrigus-lgtm opened 7 months ago
Maybe?
You are correct that CBMC has had a C++ front-end for ... more than half of it's two decades of existence. However there are a few problems with it which make it harder to use than we would like.
The problem is that most implementations of the standard template library ( STL ) use a lot of template meta-programming. This means that to support even the most basic code that #include
So what can you do?
A. Use a different STL implementation. An older one or one designed for simpler targets might work.
B. You can write your own versions of the STL headers that you need, maybe using the modelling features in CBMC https://diffblue.github.io/cbmc/cprover-manual/index.html This will likely perform much better than using a real STL.
C. At points there have been tools that translate C++ into C.
While I am muddying the waters I might also point out that there are several other language front-ends which are significantly more useful than the C++ one. I think the rough order of utility is:
HTH
Hey, I almost missed that cbmc also supports C++.
I think it might make sense to update the documentation: https://diffblue.github.io/cbmc/
and also the "About" text on GitHub: