Convenções de biblioteca de C++
A biblioteca C++ obedeça as mesmas convenções como a biblioteca c padrão, além de mais algumas descrito aqui.
Uma implementação tem certa latitude em como ele declara tipos e funções na biblioteca do C++:
Nomes de funções na biblioteca c padrão podem ter extern # "C++" ou ligação do extern "C".Incluir o cabeçalho de c padrão apropriado em vez de declarar um embutido de entidade de biblioteca.
O nome de uma função de membro em uma classe de biblioteca pode ter assinaturas de função adicional sobre os listados neste documento.Você pode ter certeza de que uma chamada de função descrita aqui funciona como esperado, mas é confiável não é possível obter o endereço de uma função de membro de biblioteca.(O tipo pode não estar esperada.)
Uma classe de biblioteca talvez tenha classes base do umentadas (nonvirtual).Uma classe documentada como derivados da classe de outro na verdade, talvez, ser derivada dessa classe por meio de outras classes não documentados.
Um tipo definido como um sinônimo de algum tipo de número inteiro pode ser o mesmo que um dos vários tipos de inteiro diferentes.
Um tipo de máscara de bits pode ser implementado como um tipo inteiro ou uma enumeração.Em ambos os casos, você pode executar operações bit a bit (como AND e OR) nos valores do mesmo tipo de máscara de bits.Os elementos A e B de um tipo de máscara de bits são valores diferentes de zero que A & Bé zero.
Uma função de biblioteca que não tem nenhuma especificação de exceção pode lançar uma exceção de arbitrária, a menos que sua definição claramente restringe tal uma possibilidade.
Por outro lado, há algumas restrições:
A biblioteca c padrão usa sem macros de mascaramento.Somente as assinaturas são reservadas de função específica, não os nomes das funções próprias.
O nome de uma função de biblioteca fora de uma classe não terá assinaturas adicionais, não documentado, função.Confiável, você pode levar seu endereço.
Classes base e as funções de membro descritas como virtual são certamente virtuais, enquanto os descritos como nonvirtual são certamente nonvirtual.
Dois tipos definidos pela biblioteca C++ sempre são diferentes, a menos que este documento explicitamente sugere caso contrário.
Funções fornecidas pela biblioteca do, incluindo as versões padrão substituíveis funções, podem lançar no máximo essas exceções são listados na especificação qualquer exceção.Nenhum destruidores fornecidos pela biblioteca lançam exceções.Funções na biblioteca c padrão podem propagar uma exceção, como quando qsort chamadas de função de uma comparação que lança uma exceção, mas eles caso contrário não lançar exceções.