Alex Darby writes about "the Stack", referring to both the ISO standard and Bjarne's C++ book and complains that they both evade the concept of a stack or a heap as used for laying-out objects in memory:
But the fact that the standard text on C++ all but ignores something as core to the internal operation of C++ as the Stack is telling indeed. In my experience, this is symptomatic of the disconnect between programming language and underlying implementation that exists in the academic mindset.
In fact, it's very deliberate, and has nothing to do with academia. You shouldn't need to know about implementation details like a memory stack or heap because (a) you're writing in a programming language that abstracts those details away from you, and (b) they are implementation-specific. In Bjarne's case he's writing only about C++, not how some specific platform implements it. It's a book about the language, not the computer that compiles it into another language.
Understanding this abstraction is key to writing good, portable code. That's why he's done it and it's a good thing.
When books jump into talking about a "stack" or "heap", they are mistraining people into thinking that these are part of C++ when they are in fact programming with a combination of technologies including C++, machine code, a stick of memory, an OS… and Darby seems to have fallen into that trap, as his article gives the impression that he believes a stack is a core part of C++ itself. Indeed, Bjarne is correct to talk instead about the notion of storage duration, which is the only thing the C++ language defines on the matter.
Of course, that's not to say that such details should be forever ignored or that we should pretend that, say, an x86 machine doesn't typically use a stack. Certainly in the game development world, a programmer must be aware of lower-level implementation details. I'm not advocating some academic approach that completely removes real-world components from the equation.
It'd just be helpful if Darby didn't pretend that these lower-level details were actually part of C++ at all.