«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как заголовки стандартной библиотеки C++ гарантируют включение других заголовков или предоставляют определенные функции без явного включения?

Как заголовки стандартной библиотеки C++ гарантируют включение других заголовков или предоставляют определенные функции без явного включения?

Опубликовано 23 декабря 2024 г.
Просматривать:451

How do C   standard library headers guarantee the inclusion of other headers or provide specific functions without explicit inclusion?

Заголовки в стандартной библиотеке C с гарантированными включениями

В большинстве случаев заголовки стандартной библиотеки C имеют неуказанные отношения включения. Однако существуют исключения, когда определенные заголовки гарантируют включение других заголовков или предоставляют определенные функции без их включения.

Заголовки гарантированно включают определенные заголовки:

  • Список инициализаторов () включен by:

    • Утилита ()
    • String ()
    • Массив ()
    • Dequeue ()
    • Список пересылки ()
    • Список ()
    • Вектор ()
    • Карта ()
    • Набор ()
    • Неупорядоченная карта ( )
    • Неупорядоченный набор ()
    • Очередь ()
    • Стек ()
    • Алгоритм ()
    • Случайный ()
    • Valarray ()
    • Регулярное выражение ()
  • Поток ввода/вывода () включает в себя:

    • Состояние ввода/вывода ()
    • Буфер потока ()
    • Входной поток ()
    • Выходной поток ()
  • Состояние ввода/вывода () включает в себя:

    • Предварительные заявления ()
  • Набор битов () включает в себя:

    • Строку ()
    • Предварительные заявления ()

Заголовки, гарантирующие доступность функции:

Шаблоны функций std::begin, std::end, и их варианты (cbegin, crend ​​и т. д.) в основном определяются в заголовке Iterator (). Однако они также доступны при включении любого из следующих заголовков:

  • Array ()
  • Dequeue ()
  • Forward List ( )
  • Список ()
  • Карта ()
  • Регулярное выражение ()
  • Set ()
  • Строка ()
  • Неупорядоченная карта ( )
  • Неупорядоченный набор ()
  • Вектор ()

При включении std::string_view () становятся доступными функции *begin, *end и общие перегрузки std::swap. Однако размер, пустые данные и данные — нет.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3