Der folgende Text ist ein Auszug aus dem Buch von Bjarne Stroustrup, The C++ Programming Language:
Abschnitt 4.6:
Einige Aspekte der grundlegenden Typen von C++, wie z. B. die Größe eines int, sind durch die Implementierung definiert (Abschnitt C.2). Ich weise auf diese Abhängigkeiten hin und empfehle oft, sie zu vermeiden oder Schritte zu unternehmen, um ihre Auswirkungen zu minimieren. Warum sollten Sie sich die Mühe machen? Menschen, die auf einer Vielzahl von Systemen programmieren oder eine Vielzahl von Compilern verwenden, sind sehr daran interessiert, weil sie sonst gezwungen sind, Zeit damit zu verschwenden, obskure Fehler zu finden und zu beheben. Diejenigen, die behaupten, dass sie sich nicht um die Portabilität kümmern, tun dies in der Regel, weil sie nur ein einziges System verwenden und glauben, dass sie sich die Einstellung leisten können, dass "die Sprache das ist, was mein Compiler implementiert". Dies ist eine enge und kurzsichtige Sichtweise. Wenn Ihr Programm ein Erfolg ist, wird es wahrscheinlich portiert werden, so dass jemand Probleme im Zusammenhang mit implementierungsabhängigen Funktionen finden und beheben muss. Außerdem müssen Programme oft mit anderen Compilern für dasselbe System kompiliert werden, und selbst eine zukünftige Version Ihres Lieblingscompilers könnte einige Dinge anders machen als der aktuelle. Es ist viel einfacher, die Auswirkungen von Implementierungsabhängigkeiten zu kennen und zu begrenzen, wenn ein Programm geschrieben wird, als zu versuchen, das Durcheinander hinterher zu entwirren.
Es ist relativ einfach, die Auswirkungen von implementierungsabhängigen Sprachmerkmalen zu begrenzen.
Meine Frage lautet: Wie lassen sich die Auswirkungen von implementierungsabhängigen Sprachmerkmalen begrenzen? Bitte erwähnen Sie implementierungsabhängige Sprachmerkmale und zeigen Sie dann, wie man ihre Auswirkungen begrenzen kann.