C'è una tale cosa ed è nell'ultima C++ progetto:Che cos'è una funzione "in linea esterna" e quando usarla?
al § 7.1.2 .4:
una funzione inline è definita in ogni unità di traduzione in cui si è ODR-usato e deve avere esattamente la stessa definizione in ogni caso (3.2). [Nota: è possibile che venga visualizzata una chiamata alla funzione in linea prima che la sua definizione venga visualizzata nell'unità di traduzione. - end note] Se appare la definizione di una funzione in un'unità di traduzione prima della sua prima dichiarazione come inline, il programma è mal formato. Se una funzione con collegamento esterno viene dichiarata in linea in una unità di traduzione, essa viene dichiarata in linea in tutte le unità di traduzione in cui appare, in linea ; non è richiesta alcuna diagnostica. Una funzione inline con collegamento esterno deve avere lo stesso indirizzo in tutte le unità di traduzione. Una variabile locale statica in una funzione incorporata esterna fa sempre riferimento allo stesso oggetto . Un tipo definito all'interno del corpo di una funzione in linea esterna è dello stesso tipo in ogni unità di traduzione.
Alcuni approfondimenti su cosa è questo e quando usarlo?
Forse un suggerimento sull'ottimizzazione del collegamento? – leppie