C++ is a huge language that is nearly impossible to learn completely, so your objective should be to learn enough for your project, and to learn how to use C++ effectively in a way that you and others can understand.
While you are learning the basics of the language, I think you should stay away from writing your own templates, for example. You'll use a lot of templates from the standard library (std::vector<> is your friend), but you can make all sorts of interesting C++ programs without writing your own templates.
Disclaimer: The rest of this post is not an opinion universally shared by C++ experts.
My own preferred way of learning C++ is to learn C first. C is a small language where a few key ideas allow you to write any program you want. Pretty much everything you learn in C will also work in C++. Then you'll discover that C++ has a lot of very nice features that will make your life easier, including:
- classes with destructors that are called at well-specified times (this is also known as RAII, which is a terrible name);
- super-useful containers, like vectors and strings;
- a neat way of describing interfaces to libraries (and SFML is a great example of how to do this idiomatically in C++, so do imitate its style!);
- smart pointers,
- etc.