Was die Namen der Standard-C++-Header-Dateien angeht, so gab es in den ersten Tagen (in den ersten zwei Jahren) von X3J16 einen Streit darüber, wie die Erweiterung der Standard-C++-Header-Dateien lauten sollte. Ich glaube, es gab .h, .H, .h++, .hpp, .HXX und möglicherweise noch andere, die damals von verschiedenen Anbietern verwendet wurden (und von den Einschränkungen beeinflusst waren, die einige Betriebssysteme für Dateinamen vorgaben). In einer Bibliotheksgruppensitzung schlug ich vor, die Erweiterung wegzulassen und es der Implementierung zu überlassen, eine Standard-Dateierweiterung ihrer Wahl anzugeben, wenn in der Include-Zeile keine vorhanden war, oder den Namen als Schlüssel in einer Datenbank mit vorkompilierten Header-Dateien zu verwenden, falls gewünscht. [Während Unix-ähnliche Systeme den Dateinamen und die "Erweiterung" als eine einzige Zeichenkette behandeln, vertrat ich DEC in dem Ausschuss, und viele DEC-Betriebssysteme speicherten die Erweiterung im Verzeichnis als ein vom Namen getrenntes Feld. DEC-Betriebssysteme hatten also eine starke Tradition, eine Standard-Erweiterung anzuwenden, je nachdem, welches Programm zu welchem Zweck auf die Datei zugriff. Die Anweisung an einen Assembler 'X,Y=Z' konnte dazu führen, dass die Eingabedatei Z.MAC (Makro) gelesen und die Ausgabedateien X.OBJ und Y.LST geschrieben wurden]. Wie auch immer, es vermied eine lange, aussichtslose Debatte, so dass die Gruppe dem zustimmte und Andy Koenig die Schlussfolgerungen der Gruppe (neben anderen) dem gesamten Ausschuss vorstellte, der sie akzeptierte. Ich finde es etwas amüsant, dass die Implementierungen den ganzen Punkt übersehen haben, dass sie eine Standarderweiterung ihrer Wahl anwenden können (was meiner Meinung nach für Editoren und andere Werkzeuge nützlich wäre) und die Erweiterung einfach aus dem Dateinamen weggelassen haben.