Поделиться через


Соглашения библиотеки C++

Библиотека C++ повинуется много аналогичным соглашениям как стандартная библиотека C, а также несколько более структура здесь.

Реализация имеющий широту в ее объявляет типы и функций в библиотеке C C++:

  • Имена функций в стандартной библиотеке C могут иметь или # extern " C» ++ или компоновку extern «C». Включить заголовок C — соответствующий стандарту вместо объявите сущность библиотеки последовательно.

  • Имя функции-члена класса библиотеки может иметь дополнительные сигнатуры функции над теми параметрами, перечисленными в этом документе. Можно уверено, вызов функции описанный здесь работает, как ожидалось, но не всегда, чтобы получить адрес функции-члена библиотеки. (Тип не может отличаться от ожидаемого).

  • Класс библиотеки могут иметь незадокументированные (невиртуальная) базовые классы. Класс задокументировано, как производно от другого класса может, на самом деле, быть получен из этого класса с помощью незадокументированные другие классы.

  • Тип, определенный синонимом некоторого целого типа может быть таким же, как один из нескольких разных целочисленных типов.

  • Тип битовой маски можно реализовать как типом или типом или перечисление. В любом случае можно выполнять побитовые операции (например, AND и OR) на значения одного типа битовой маски. Элементы A и B типа битовой маски ненулевые значения так, что A &B ноль.

  • Функция библиотеки, которая не имеет спецификации исключений может создавать произвольное исключение, если ее определение, не ограничивает количество такую возможность.

С другой стороны, некоторые ограничения:

  • Библиотека C стандарта не использует маски макросов. Только сигнатуры определенной функции, не зарезервированные имена сами функций.

  • Имя функции библиотеки вне класса не будет иметь дополнительное недокументированный, сигнатура функции. Всегда можно сделать его адрес.

  • Базовые классы и функции-члены, как виртуальный виртуальный разумеется, а те, как невиртуальная конечно невиртуальная.

  • 2 Типа, библиотекой C++ всегда другие, если этот документ явным образом предлагать в противном случае.

  • Функции, предоставляемые библиотекой, включая версии по умолчанию меняемых функций, может быть создано не более те исключения, перечисленные в любой спецификации исключений. Нет деструкторы предоставленные библиотекой не вызывают исключений. Функции в стандартной библиотеке C могут распространяться исключение, после qsort вызывает функцию сравнения, возникает исключение, но они иначе создает исключения.

См. также

Ссылки

Общие сведения о стандартной библиотеке C++

Потокобезопасность в стандартной библиотеке C++