Hi for all

First of all thanks to read this. I really need a lot of opinions.
I'm posting this topic to get a help of you, expert developers. I know the answer of this question is generic. I'm a C++ developer( like you are ) with a problem that affects you or have affected some time. It's about learning.
I explain. I know C++, some subtleties of the language, good knowledge of STL and moderate knowledge of templates.
My torment lies in all of this. I think I have a considerable knowledge of this stuff. But when I get code of others and write my code I never know to say if it's a good solution or not. That means, I can't evaluate properly the code.
When I show the design of my solutions to an experienced developer, their solution of the same problem generally is better than mine. I realized what I think it's a good solution, isn't not many times.
This explains my post. Now I would like to know of you, expert developers and solution designers, what you consider a expert C++ solution developer. I mean, what you consider a developer must know to effectively use C++ and when to apply good solution.
I need good practices and design, I think.

For you all, thanks for your replies