Quote Originally Posted by Elysia View Post
It wants zero-overhead or down-to-the-metal approaches. That complicates things.
That's a bit of an exaggeration. The philosophy in the standardisation process is to avoid overhead of features within a program unless those features are used. They will accept overhead if the benefit of the feature is judged sufficient to warrant accepting that overhead. Of course, that is rather subjective, since committee members need to agree on what is "sufficient".

That is what happened in early days of exceptions, for example - early implementations of exception handling were far from zero overhead, whether exceptions were used or not. That has changed on two fronts. Firstly, the overhead of exceptions is much smaller in modern implementations - most of the observable impact on program performance occurs when the exception is thrown/caught. Second, exception handling is used by default now (e.g. operator new throws unless a nothrow version is used, exceptions are used within the standard library to report errors and constraints are now specified on what happens when an exception is thrown). Which often means that, when using standard library facilities, there is an implicit choice by the programmer to utilise exceptions.

(Note that executable file size is mostly not a measure of overhead in this sense).