I am not sure of anything that checks all the basic functions. There are a lot of them, and some of them are rarely used together (templates and virtual functions come to mind. Both reach a form of polymorphism, so you often use one or the other depending on your needs.)
A suitable project in which it touches on all the important functions can be something simple, for example, writing the right container class, similar to std :: vector or std :: list. Ensure exception safety, iterator validity, appropriate time complexity for all operations, and every other requirement specified in the standard.
The problem with this, as well as with most other projects, is that you will not know when you are done. Creating a mutable array can take 50 lines of code and 20 minutes of your time. And then the beginner will think that he did it. To make it safe for exceptions, you should be able to identify all the places where the class can be thrown into an inconsistent state except.
This is a kind of common problem with C ++. It is easy enough to think that you will receive it, and the compiler, of course, will not notify you of those aspects that you forgot to process. So you might think your code is perfect, and yet it will break into all sorts of odd special cases.
As sharptooth said, writing a code in its own way is risky for a language as dirty as C ++. It's easy to fall into the trap of "I wrote the code, it compiles and seems to be running, so it is correct." Of course, you can publish your code here or on other sites for review, or maybe just replenish your coding by reading documents for up-to-date high-quality C ++ code (most developer libraries, as a rule, have exhaustive documentation that states as a rationale for various design decisions, and how it safely handles all the weird special cases that tend to occur in C ++. Of course, the C ++ standard itself would be another great resource. In any case, it can elp you determine what problems to look for)
jalf
source share