It depends. My advice would be that you learn C++ only if you have a compelling reason to do so, and not just for the heck of it.
C++ is a pretty complex beast once you get past the basics, and learning its nuances and adapting to its quirks takes a while; so there will be times (and many of them, trust me) when you will get frustrated trying to figure out how to get around, say, a linker error (I always found these types of errors to be the most challenging), and the cryptic error messages that you get while using the standard libs — most of which are templatized — won’t help much.
To put things within context, I have been writing code for a living for more than two decades now, and was considered something of a better-than-average C++ programmer in the companies that I worked in back then. (At one time I was in the 98th percentile in C++, sic, on a well-known certification website back in the 90s.) However, I last wrote serious C++ code almost 10 years back, and have worked solely with C# and Java since, and have never looked back. Not that I don’t miss C++ — the knowledge of which is hard-earned in my case after a humongous amount of reading and making loads of mistakes — and often, for no particular reason, I do write some short programs like simple games to wipe the dust off my skills. But then, unless there are very compelling justifications, I see no reason why I would want to go back to C++ for any kind of application programming.
Original post: