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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

См. также

Ссылки

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

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