P
krümelkacker schrieb:
Das würde ich nicht machen. Wird der Header in 10 ÜEs eingebunden und genutzt, gibt es auch 10 Exemplare dieser Funktionen (mit verschiedenen Adressen), die aber alle das gleiche tun.
Einen Tod muss er sterben. Entweder explizit external linkage durch Deklaration im header und Definition im .cpp (selbst das können findige Linker noch inlinen1). Oder inline deklariert und dadurch internal linkage (plus external linkage version, wenn die Adresse der inline Funktion irgendwo geholt wird). Oder reine internal linkage und dann eine Version in jeder ÜE. Letztere kann der Compiler oder Linker rauswerfen, wenn sie nicht benutzt wird.
Davon abgesehen:
1: Ja, auch Linker können inlinen, wenn sie wollen. Womit ipsec widersprochen ist, und vor allem:
314159265358979 schrieb:
Was, wenn ich eien Funktion in einen Header schreiben möchte, aber nicht will, dass sie geinlined wird?
Wenn man partout nicht will, dass eine Funktion geinlined wird, dann muss man sich anstrengen, und zwar richtig. Wobe es aber natürlich keinen Grund gibt, es nicht zu wollen.