[–] Master_Foo ago
The difference between a High and Low level language is the amount of abstraction in the grammar of the language.
Assembly is a Low level language because there is no abstraction between the processor and the code written. Every line of assembly has a 1 to 1 literal correspondence with an instruction on the processor. You never see abstract concepts like for loops, or arrays in assembly because those concepts don't exist at the processor level.
[–] ilikeskittles 0 points 1 point 1 point (+1|-0) ago
Not by definition. It's actually a very high level language. Assembler would be a low level language.
[–] tux ago
Technically no, c++ isn't a low level language.
On the flip side, it's often the lowest level language used in the bulk of production code. I've worked on several OSs professionally and they all were largely C++ (Linux kernel is c... For reasons).
The code that needs to be blazing fast will generally leave out many of the OOP features, abuse templates, and use a ton of compiler intrinsics.
With c++ it's very easy to guess what the compiler will output, and write things accordingly. There are also (compiler specific) intrinsics for SIMD, so you don't need assembly for that either anymore.