Konvence knihovny C++
Knihovna jazyka C++ dodržuje mnohem stejné konvence jako standardní knihovna jazyka C, a navíc je zde uvedeno několik dalších informací.
Implementace má určitou zeměpisnou šířku, jak deklaruje typy a funkce v knihovně C++:
Názvy funkcí v knihovně Standard C mohou mít externí propojení C++nebo extern "C". Místo deklarace entity knihovny zahrňte odpovídající standardní hlavičku jazyka C.
Název členské funkce ve třídě knihovny může obsahovat další podpisy funkcí uvedené v tomto dokumentu. Můžete si být jistí, že se zde popsané volání funkce chová podle očekávání, ale nemůžete spolehlivě převzít adresu členské funkce knihovny. (Typ nemusí být očekávaný.)
Třída knihovny může mít nezdokumentované (nevirtuální) základní třídy. Třída zdokumentovaná jako odvozená z jiné třídy může být ve skutečnosti odvozena z této třídy prostřednictvím jiných nezdokumentovaných tříd.
Typ definovaný jako synonymum pro určitý celočíselný typ může být stejný jako jeden z několika různých celočíselných typů.
Typ bitové masky lze implementovat buď jako celočíselného typu, nebo jako výčet. V obou případech můžete provádět bitové operace (například
AND
aOR
) s hodnotami stejného typu masky bitů. PrvkyA
aB
typ bitové masky jsou nenulové hodnoty, které jsou nulové, takžeA
&B
je nula.Funkce knihovny, která nemá žádnou specifikaci výjimky, může vyvolat libovolnou výjimku, pokud její definice jasně neomezuje takovou možnost.
Na druhou stranu platí určitá omezení:
Standardní knihovna jazyka C nepoužívá žádná makra maskování. Vyhrazeny jsou pouze konkrétní podpisy funkcí, nikoli názvy samotných funkcí.
Název funkce knihovny mimo třídu nebude obsahovat další, bezdokumentované podpisy funkce. Můžete spolehlivě převzít jeho adresu.
Základní třídy a členské funkce popsané jako virtuální jsou ujištěné virtuální, zatímco ty, které jsou popsány jako nevirtuální, jsou ujištěné nevirtuální.
Dva typy definované knihovnou jazyka C++ se vždy liší, pokud tento dokument výslovně nenavrhuje jinak.
Funkce poskytované knihovnou, včetně výchozích verzí nahraditelných funkcí, můžou vyvolat maximálně tyto výjimky uvedené v jakékoli specifikaci výjimky. Žádné destruktory zadané knihovnou nevyvolají výjimky. Funkce ve standardní knihovně jazyka C mohou rozšířit výjimku, jako když
qsort
volá funkci porovnání, která vyvolá výjimku, ale jinak nevyvolají výjimky.
Viz také
Standardní knihovna C++ – přehled
Bezpečný přístup z více vláken ve standardní knihovně C++