noexcept, Stack-Abwicklung und Performance

FolgendeEntwur aus Scott Meyers neuem C ++ 11-Buch sagt (Seite 2, Zeilen 7-21)

Der Unterschied zwischen dem Abwickeln des Aufrufstapels und dem möglichen Abwickeln hat einen überraschend großen Einfluss auf die Codegenerierung. In einer noexcept-Funktion müssen Optimierer den Laufzeitstapel nicht in einem nicht abwickelbaren Zustand halten, wenn sich eine Ausnahme aus der Funktion ausbreiten würde, und sie müssen auch nicht sicherstellen, dass Objekte in einer noexcept-Funktion in der umgekehrten Reihenfolge der Konstruktion zerstört werden, falls eine Ausnahme die Funktion verlässt . Das Ergebnis sind mehr Optimierungsmöglichkeiten, nicht nur innerhalb des Körpers einer noexcept-Funktion, sondern auch an Stellen, an denen die Funktion aufgerufen wird. Eine solche Flexibilität ist nur für Nicht-Ausnahmefunktionen vorhanden. Funktionen mit den Ausnahmespezifikationen "throw ()" fehlen ebenso wie Funktionen ohne Ausnahmespezifikation.

Im Gegensatz dazu Abschnitt5.4 von "Technischer Bericht zur C ++ - Leistung" beschreibt die Methoden "Code" und "Tabelle" zum Implementieren der Ausnahmebehandlung. Insbesondere wird gezeigt, dass die "table" -Methode keinen Zeitaufwand hat, wenn keine Ausnahmen ausgelöst werden, und nur einen Leerraumaufwand hat.

Meine Frage ist folgende: Von welchen Optimierungen spricht Scott Meyers, wenn er von Abwickeln oder möglicherweise von Abwickeln spricht? Warum gelten diese Optimierungen nicht für throw()? Gilt sein Kommentar nur für die in der TR 2006 erwähnte "Code" -Methode?