I am an experienced C++ programmer, but I see there are many gaps in my understanding. I would like to know what are my strong areas and the ones I am weak at. This will help me to choose the topics I want to further concentrate. Is anybody aware of any such service (paid or free) which is reliable available online?
I know of none in the reliable category. All those I've seen where expecting
answers I know are false
use of platform specific answer, without even specifying the assumed platform (often windows but sometimes Posix or even purely Linux)
There's this outsourcing site called Odesk which makes you take tests in areas before you can attempt to get paid for working on stuff companies want to outsource. Taking the tests is free. Every once in a while I'll go on there and take their tests as a little refresher.
They have a C++ test. It goes through a lot of the "main" areas of C++ syntax/features that you should probably know. I'd say take the test there and see where your holes are. Worst case scenario is you lose 30 minutes of your time. Best case is you reveal a hole in your understanding. Good luck!
About 10 years ago I used Brainbench and it did help me. I can't vouch for the current state, but considering they are still in business after all this time, I'd guess they must be OK.
As an embedded guy, I recently took the 10-question Embedded C++ quiz at Netrino.
At 10 questions, it's not going to cover every aspect of the language (neither would 100 questions), but at least in the embedded world where not too many people are strong in C++, it provides a decent 0-10 index.
Note: I think you have to login/register before taking the quiz.
You might want to try My CPP Quiz as that has a set of very comprehensive C++ questions. If you can get through those easily you could consider yourself having a satisfactory understanding of basic C++.