>>105778704a few reasons
>not all computers work the same>an OS imposes a standard on top of the computer that has to be followed, different OSes have different standards, even OSes in the same "family" can be wildly differentfor example if you're on arm, risc-v, or x86s your cpu doesn't really have a sense of stack vs heap, that's a convention imposed by your operating system.
the idea of C and C++ is that the standard can target a vague register machine and the compiler can map that pretty efficiently to any given (normal) architecture and operating system family in a relatively straightforward way.
additionally, the core idea of programming language design is that you abstract lower level details away with "sane defaults" for a given domain. you prioritize the expressability of certain concepts in a certain way, because that ultimately means you're writing simpler code which means working much faster and can debug your software much more easily.
also, at this point it's not just programming languages. machine code and assembly languages are very abstract and don't reflect the hardware at all. there's even undefined behavior at what used to be the "atomic" level of programming. think of what a cacheing, pipelining superscalar cpu is like under the hood, think of how many raw things get hidden from you. did you know your modern x86 cpu has over 500 registers per cpu? did you know when you write something like
mov eax, [ebp+8]
[ebp+9] is not an expression, it's literally translated into a special and specific piece of silicon that's been hardwired into the cpu.
as for why c++ is an utter failure in this particular instance? it's because the standards committee are bad at their job. for serious programmers with mechanical sympathy, the problem with sepples was never the footguns, but the retarded standards committee having no idea what the fuck they're doing.