Numai antet - Header-only

În contextul limbajelor de programare C sau C ++ , o bibliotecă se numește numai antet dacă definițiile complete ale tuturor macrocomenzilor , funcțiilor și claselor care conțin biblioteca sunt vizibile pentru compilator într-un formular de fișier antet . Bibliotecile cu antet nu trebuie să fie compilate , împachetate și instalate separat pentru a putea fi utilizate. Tot ce este necesar este să îndreptați compilatorul către locația antetelor și apoi #includeți fișierele antet în sursa aplicației. Un alt avantaj este că optimizatorul compilatorului poate face o treabă mult mai bună atunci când este disponibil tot codul sursă al bibliotecii.

Dezavantajele includ:

  • fragilitate - majoritatea modificărilor aduse bibliotecii vor necesita recompilarea tuturor unităților de compilare care folosesc acea bibliotecă
  • timpi mai mari de compilare - unitatea de compilare trebuie să vadă implementarea tuturor componentelor din fișierele incluse, mai degrabă decât doar interfețele acestora
  • mașini- bloat cod (probabil) - utilizarea necesară a inline declarații în funcțiile de bază non-clasă poate duce la codul bloat de supra-Încorporarea.

Cu toate acestea, formularul numai pentru antet este popular deoarece evită problema (adesea mult mai gravă) a ambalajului.

Pentru șabloanele C ++, inclusiv definițiile din antet este singura modalitate de compilare, deoarece compilatorul trebuie să cunoască definiția completă a șabloanelor pentru a crea instanțe.

Referințe

linkuri externe