Das implizite Inkludieren von Quelldateien ist eine Methode, um Definitionen von Template-Einheiten zu finden. Diese Methode ist beim Compiler voreingestellt (siehe auch Option IMPLICIT-INCLUDE, "MODIFY-SOURCE-PROPERTIES") und kann mit IMPLICIT-INCLUDE=*NO ausgeschaltet werden. Zum Ausschalten der impliziten Inkludierung beachten Sie bitte auch die Hinweise im Abschnitt "Grundlegende Aspekte".
Wenn implizites Inkludieren eingeschaltet ist, sucht der Compiler die Definition zu einer Template-Einheit nach folgendem Prinzip:
Wenn eine Template-Einheit in einem Include-Element basisname.H
deklariert ist und im übersetzten Quellcode keine Definition bereitsteht, nimmt der Compiler an, dass die Definition zu dieser Template-Einheit in einer Quelldatei enthalten ist,
die als Quellprogramm-Element in derselben PLAM-Bibliothek steht wie das Include-Element
und deren Name aus dem Basisnamen des Include-Elements und einem Standard-Suffix für C++-Quelldateien
.C
,.CPP
,.CXX
oder.CC
gebildet ist (z.B. basisname.CC
).
Es sei beispielsweise in dem Include-Element XYZ.H
in der Bibliothek PLAM.T
eine Template-Einheit ABC::f
deklariert. Wenn die Instanziierung von ABC::f
bei der Übersetzung angefordert wird, aber keine Definition von ABC::f
im übersetzten Quellcode existiert, sucht der Compiler in der Bibliothek PLAM.T
nach einer Quelldatei mit dem Basisnamen XYZ
und einem Standard-Suffix für C++-Quelldateien.C
, .CPP
, .CXX
oder .CC
(z.B. XYZ.CC
). Wenn sie existiert, wird sie so behandelt, als ob sie am Ende der Quelldatei inkludiert wäre.