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,.CXXoder.CCgebildet 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.