It depends on how you define "learning a language".
Learning C++ syntax is a basic matter of writing a handful of practice applications and reading blogs and forums (and definitely Stack Overflow (: ).
Then you get to learn other structures like pointers, classes... writing them is a step forward from basic syntax.
Then comes the data structures and I believe that is where the hardcoreness of C++ comes in: the implementation in code is usually similar to how you'd write an algorithm in common pseudocode. The thing is, YOU will usually have to implement them, making it a must for you to know almost every detail of an abstract data structure - contrary to how things work in languages with the structures like hashtables, linkedlists etc. built in.
Being proficient in a high level language may make you a programmer, but "knowing" C++ in that aspect will make you conscious of what you have been doing in all the programs you have been coding. There may be people who will put forward the argument "if you want to know what you are doing, learn assembly" - I don't know assembly (yet), so I won't be able to reply, but I'd still say that C++ is somewhat more "learnable".
And then there are different libraries, all with their pros and cons, all being constantly developed further... so "learning C++" is not really a process you can ever reach the end of :)