История языка программирования C++ восходит к 1979 году , когда Бьёрн Страуструп выполнил некоторые разработки для своей докторской диссертации. Из всех языков, которые может использовать Страуструп, есть один под названием Simula, который, как следует из названия, может быть языком, предназначенным в первую очередь для моделирования. Язык Simula 67 — это вариант, используемый Страуструпом, и он считается основным языком, поддерживающим парадигму объектно-ориентированного программирования. Страуструп считает эту парадигму полезной при разработке упаковки. Однако язык Simula слишком медленный для практического и практического использования. Вскоре после этого Бьёрн Страуструп захотел усовершенствовать язык C, поддержав объектно-ориентированную парадигму. Он углубился в объектно-ориентированную реализацию Smalltalk, чтобы получить идеи по реализации. Но он не хотел ради этого жертвовать производительностью, поэтому начал работать над «C с классами (C с классами)», надеясь, что код C++ должен иметь производительность, аналогичную (или лучшую) производительности кода C при запуске.
В 1983 году название языка было изменено с «C с классами» на C++. Оператор ++ в C — это оператор увеличения переменных, который дает вам некоторое представление о том, как Страуструп рассматривает язык. За этот период было добавлено множество новых функций, наиболее заметными из которых являются виртуальные функции, перегрузка функций, ссылки с амперсандом, ключевое слово const и однострочные комментарии с использованием двух косых черт.
В 1985 году Страуструп опубликовал книгу «Язык программирования C++». В том же году C++ был реализован как коммерческий продукт. Язык не был официально стандартизирован, поэтому эта книга является очень важным справочником. В 1989 году язык был снова обновлен и теперь включает защищенные и статические члены, а также наследование от нескольких классов.
В 1990 году было выпущено Справочное руководство по C++ с аннотациями. В том же году компилятор Borland Turbo C++ будет выпущен как коммерческий продукт. Turbo C++ добавляет множество других библиотек, которые могут оказать значительное влияние на разработку C++. Хотя последняя стабильная версия Turbo C++ была выпущена в 2006 году, компилятор до сих пор широко используется.
В 1998 году Комитет по стандартизации C++ опубликовал первый международный стандарт C++ ISO/IEC 14882:1998, неофициально известный как C++98. Говорят, что «Аннотированное справочное руководство по C++» оказало большое влияние на формулировку стандарта. Также включена стандартная библиотека шаблонов, разработка концепции которой началась в 1979 году. В 2003 году комитет отреагировал на несколько проблем, указанных в стандартах 1998 года, и соответствующим образом пересмотрел их. Измененный язык называется C++03.
В 2005 году Комитет по стандартам C++ опубликовал технический отчет (названный TR1), в котором подробно описывались различные функции, которые они планировали добавить в последний стандарт C++. Новый стандарт неофициально известен как C++0x, поскольку ожидается, что он будет выпущен где-то до конца первого десятилетия. По иронии судьбы, новый стандарт не будет выпущен до середины 2011 года. К этому моменту было опубликовано несколько технических отчетов, и некоторые компиляторы начали добавлять экспериментальную поддержку новых функций.
В середине 2011 года был завершен новый стандарт C++ (названный C++11). Проект библиотеки Boost оказал значительное влияние на новый стандарт: некоторые новые модули взяты непосредственно из соответствующих библиотек Boost. Некоторые из новых функций включают поддержку регулярных выражений, комплексную библиотеку рандомизации, новую библиотеку синхронизации C++, атомарную поддержку, стандартную библиотеку потоков, новый синтаксис цикла for, который обеспечивает функциональность, аналогичную циклам foreach в некоторых других языках, ключевое слово auto, новый классы-контейнеры, улучшенная поддержка списков инициализаторов объединений и массивов, а также шаблонов с переменным числом вариантов.
В 2014 году был выпущен C++ 14 (также известный как C++ 1y) как небольшое расширение C++11. Его основные функции — исправление ошибок и небольшие улучшения. Процедура голосования по проекту международного стандарта была завершена в середине августа 2014 года для усиления. лямбда-функция constexpr и функции вывода типа.
В 2017 году был выпущен стандарт C17. C17 предлагает множество возможностей. Улучшения основного языка и библиотек.
В 2020 году был выпущен стандарт C++20, в котором появилось множество важных функций, наиболее важными из которых являются:
Концепции. Концепции меняют наше мышление и шаблоны программ. Это семантические категории параметров шаблона. Они позволяют вам выразить свои намерения непосредственно в системе типов. Если что-то пойдет не так, вы получите четкие сообщения об ошибках.
Библиотека диапазонов. Новая библиотека диапазонов позволяет выполнять алгоритмы непосредственно в контейнерах, составлять их с помощью конвейерной нотации и применять к бесконечным потокам данных.
Сопрограммы. Асинхронное программирование на C++ становится массовым благодаря сопрограммам. Сопрограммы являются основой для совместных задач, циклов событий, бесконечных потоков данных или конвейеров.
Модули: Модули преодолевают ограничения файлов заголовков. Разделение файлов заголовков и исходных файлов устарело так же, как и препроцессоры. Наконец, у нас есть более быстрое время сборки и более простой способ сборки пакетов.
Параллелизм: атомарные интеллектуальные указатели, объединение и отменяемые потоки, библиотека синхронизации C20, расширяющая возможности параллельного программирования на C++;
Учебник по С++
Введение в С++
Настройки среды C++
Базовый синтаксис С++
Комментарии С++
Типы данных С++
Типы переменных C++
Область видимости переменных C++
Константы С++
Типы модификаторов C++
Класс хранилища C++
Операторы С++
Цикл С++
Решение C++
Функция С++
Числа С++
Массив С++
строка С++
Указатели С++
Ссылки на С++
Дата и время С++
Базовый ввод и вывод C++
Структуры данных C++
Классы и объекты C++
Наследование С++
Перегруженные операторы и перегруженные функции C++
Полиморфизм С++
Абстракция данных C++
Инкапсуляция данных C++
Интерфейс C++ (абстрактный класс)
Файлы и потоки C++
Обработка исключений C++
Динамическая память C++
пространство имен C++
Шаблон C++
Препроцессор С++
обработка сигналов C++
Многопоточность C++
Веб-программирование на C++
Учебное пособие по C++ STL
Стандартная библиотека С++
1. Базовые знания
8.1 Основные понятия о конструкциях
8.2 Определение структуры и использование
8.3 Структурный массив
8.4 Указатель структуры
8.5 Структура Вложенная структура
8.6 Структура как функциональный параметр
8.7 Сценарии использования const в структурах
7.1 Основные понятия указателей
7.2 Определение и использование переменных-указателей
7.3. Объем памяти, занимаемый указателями
7.4 Нулевые указатели и дикие указатели
7.5 константный модифицированный указатель
7.6 Указатели и массивы
7.7 Указатели и функции
7.8 Указатели, массивы, функции
1. оператор перехода (не рекомендуется)
2. Одномерный массив
3. Двумерный массив
4. Передача значений в функциях
5. Объявление функции
6. Написание функций в отдельные файлы
7. Указатель
8. Структура
2. Базовое программирование
3.1 Параметры функции по умолчанию
3.2 Параметры функционального места
3.3 Перегрузка функций
2.1 Основное использование ссылок
2.2 Примечания к цитированию
2.3 Ссылка как функциональный параметр
2.4 Ссылка как возвращаемое значение функции
2.5 Природа цитирования
2.6 Постоянные ссылки
1.1 Перед запуском программы
1.2 После запуска программы
1.3 новый оператор
1. Модель раздела памяти
2. Цитата
3. Функция
«Углубленное понимание C++11: анализ и применение новых возможностей C++11»
«Вводный классический курс C++ (10-е издание)»
«C++ Primer Plus, 6-е издание, китайская версия (разработано Asynchronous Books)»
«Серия компьютерных переводов книг Цинхуа: освоение C++ (9-е издание)»
«Продвинутое программирование на C++ (4-е издание)»
«Введение в программирование игр на C++ (4-е издание) (разработано Asynchronous Books)»
«Анализ исходного кода STL»
«Программирование на C++: принципы и практика (основы) (оригинальная книга, 2-е издание)»
«Ускоренная китайская версия C++»
«Мысли о программировании на C++ (два тома)»
«Китайская версия эффективного STL: 50 опытов эффективного использования STL»
«Анатомия программирования на C++: проблемы, решения и рекомендации по проектированию»
«Шаблоны C++, китайская версия»
«Новое мышление в дизайне C++»
«Метапрограммирование шаблонов C++».
«Практика параллельного программирования на C++».
«Язык программирования C++ (части 1–3) (оригинальная книга, 4-е издание)»
«Стандартная библиотека C++ (2-е издание)»
«Основной C++»
«Проектирование и эволюция языка C++»
«Углубленное изучение объектной модели C++»
«Общее программирование и STL».
10 функций C++11, которые должен использовать каждый разработчик C++
15 функций C++11, которые вы обязательно должны использовать в своих проектах на C++
Как использовать лямбда-выражения в C++11
Глубокое понимание C++11.
Сортировка рвоты кровью: новые возможности C++11
Новые возможности C++11 auto и decltype.
Новые возможности C++11: ссылка на lvalue, ссылка на rvalue, семантика перемещения, идеальная пересылка.
Инициализация списка новых функций C++11
Новые возможности C++11 std::function и лямбда-выражения
Новые возможности C++11: улучшения шаблонов
Новые возможности C++11 и знания, связанные с потоками
Новые возможности C++11
Новые возможности C++11 — интеллектуальные указатели
Общие новые возможности C++11 (1)
Общие новые возможности C++11 (2)
Краткое обсуждение новых возможностей C++14.
Все сведения о новых возможностях C++14 можно найти здесь.
Резюме: Новые возможности C++17.
Возможности языка С++20
P1 Введение в программирование на C++
Заголовочный файл P2 и объявление класса
Конструктор P3
Передача параметров P4 и возвращаемое значение
Перегрузка оператора P5 и временные объекты
P6 Обзор процесса реализации сложного класса
P7 три основные функции: создание копии, репликация копии и уничтожение.
P8 Управление кучей, стеком и памятью
P9 Обзор процесса реализации класса String
Расширения P10: шаблоны классов, шаблоны функций и другие.
P11 Состав и наследование
P13 Проекты, связанные с комиссией
P14 1 Введение
P15 2 функция преобразования
P16 3 неявный конструктор с одним аргументом
P17 4 указателя, подобные классам
P18 5 функционируют как классы
P19 6 обсуждение опыта пространства имен
Шаблон класса P20 7
P21 8 Шаблон функции
P22 9 Шаблон элемента
P23 10 специализация
P24 11 Частичная специализация шаблона
P25 12 параметров шаблона шаблона
P26 13 О стандартной библиотеке C++
P27 14 Три темы
P28 15 Ссылка
P29 16 Строительство и разрушение в рамках составных и наследственных отношений
P30 17 О vptr и vtbl
P31 18 Об этом
P32 19 0 О динамической привязке
P33 19 1 О динамической привязке
P34 20 О новом,Удалить
P35 21 Новый оператор, удаление оператора
P36 22 Пример
P37 23 Пример перегрузки new, delete$
P38 24 Basic String использует новые дополнительные возможности для расширения объема приложения.
Стандартная библиотека C++ — набор классов и функций, написанных на основном языке и являющийся частью самого стандарта C++ ISO.
Стандартная библиотека шаблонов - Стандартная библиотека шаблонов
Библиотека C POSIX — спецификация стандартной библиотеки C для систем POSIX.
Комитет по стандартам ISO C++ - Комитет по стандартам C++
Часто задаваемые вопросы по C++ — Часто задаваемые вопросы по C++
Free Country – Free Country предоставляет бесплатный исходный код C++ и библиотеки C++, которые охватывают области программирования C++, такие как сжатие, архивирование, программирование игр, стандартные библиотеки шаблонов и программирование графического пользовательского интерфейса.
Группа пользователей C и C++. Группа пользователей C и C++ предоставляет бесплатный исходный код для проектов C++, охватывающих различные области программирования, включая искусственный интеллект, анимацию, компиляторы, базы данных, отладку, шифрование, игры, графику, графический интерфейс пользователя, языковые инструменты, системное программирование и т. д. .
LearnCpp — Изучите программирование на C++ бесплатно
CodeCogs — CodeCogs — это совместная библиотека числовых компонентов с открытым исходным кодом для C/C++.
codeproject — проект кода ресурса C/C++, предоставленный codeproject.
thinkco — исходный код C++, связанный с игрой
Бесплатные библиотеки C/C++ — бесплатный исходный код C++ и другие полезные инструменты.
Стандартная библиотека C++. Это веб-страница, на которой собран список ссылок на несколько веб-сайтов C/C++.
cplusplus — сайт обучения C++
Исходные коды C++. Это полный список из 345 исходных кодов C++.
Стандартная библиотека Apache C++: представляет собой набор алгоритмов, контейнеров, итераторов и других базовых компонентов.
ASL: Библиотека исходного кода Adobe представляет собой проверенную и переносимую библиотеку исходного кода C++.
Boost: большая коллекция библиотек C++ общего назначения.
BDE: среда разработки от Bloomberg Intelligence Labs.
Cinder: сообщество разработчиков с открытым исходным кодом, которое обеспечивает творческое программирование профессионального качества.
Bxxomfort: легкая библиотека только для заголовков, которая переносит некоторые новые функции C++11 в C++03.
Dlib: универсальная кроссплатформенная библиотека C++, разработанная с использованием контрактного программирования и современной технологии C++.
EASTL: открытая часть EA-STL.
ffead-cpp: среда разработки корпоративных приложений.
Folly: библиотека C++ с открытым исходным кодом, разработанная и используемая Facebook.
JUCE: комплексная библиотека C++ для разработки кроссплатформенного программного обеспечения.
libphenom: платформа событий для создания высокопроизводительных и масштабируемых систем.
LibSourcey: C++11 событийный ввод-вывод для потоковой передачи видео в реальном времени и высокопроизводительных сетевых приложений.
Локи: Проектирование библиотеки C++, включая реализацию общих шаблонов проектирования и идиом.
MiLi: небольшая библиотека C++, предназначенная только для заголовков.
openFrameworks: Разработка набора инструментов C++ для творческого кодирования.
Qt: Кросс-платформенное приложение и инфраструктура пользовательского интерфейса.
Причина: кросс-платформенная среда, которая упрощает разработчикам использование Java, .Net и Python, а также удовлетворяет их потребности в производительности и преимуществах C++.
ROOT: набор объектно-ориентированных фреймворков со всеми функциями для очень эффективной обработки и анализа больших объемов данных, используемых ЦЕРН.
STLport: репрезентативная версия STL.
STXXL: стандартная библиотека шаблонов для дополнительных больших наборов данных.
Ultimate++: кроссплатформенная среда быстрой разработки приложений на C++.
Библиотека шаблонов Windows: библиотека C++ для разработки приложений Windows и компонентов пользовательского интерфейса.
Yomm11: открытые мультиметоды для C++11.
Boost.Asio: кроссплатформенная библиотека C++ для сетевого и низкоуровневого программирования ввода-вывода.
libev: полнофункциональный, высокопроизводительный цикл времени, слегка смоделированный по образцу libevent, но больше не имеющий тех же ограничений, что и libevent, и некоторые из его ошибок были исправлены.
libevent: библиотека уведомлений о событиях
libuv: кроссплатформенный асинхронный ввод-вывод.
libco: coroutine, базовая библиотека ввода-вывода WeChat, которая одновременно поддерживает 800 миллионов пользователей онлайн. Мощный
libgo: среда параллелизма в стиле Golang, библиотека сопрограмм реализации C++11.
ACE: набор инструментов объектно-ориентированной сети C++
Касабланка: C++ REST SDK
cpp-netlib: коллекция библиотек с открытым исходным кодом для расширенного сетевого программирования.
libCurl: многопротокольная библиотека передачи файлов
Mongoose: очень легкий веб-сервер.
Muduo: неблокирующая сетевая библиотека C++ для многопоточных серверов Linux.
net_skeleton: TCP-клиент/серверная библиотека для C/C++.
POCO: библиотека классов C++ для создания сетевых и интернет-приложений, которые могут работать на настольных, серверных, мобильных и встроенных системах.
RakNet: кроссплатформенный сетевой движок C++ с открытым исходным кодом для разработчиков игр.
Tufao: асинхронный веб-фреймворк, построенный на C++ поверх Qt.
WebSocket++: клиент/серверная библиотека веб-сокетов, основанная на C++/Boost Aiso.
ZeroMQ: высокоскоростная модульная библиотека асинхронной связи.
f-stack: стек протоколов Tencent с открытым исходным кодом, высокопроизводительный стек протоколов пользовательского режима, основанный на DPDK.
NtyTcp: стек однопоточных протоколов, основанный на реализации netmap, DPDK и rawSocket.
LWIP: оптимизированная версия реализации стека протоколов TCP/IP для платформы RAM.
mTCP: высокомасштабируемый стек протоколов TCP/IP в пользовательском пространстве для многоядерных систем.
4.4BSD: * Стек протоколов nix получен из 4.4BSD.
Nginx: высокопроизводительный веб-сервер HTTP и обратного прокси-сервера, который также предоставляет услуги IMAP/POP3/SMTP.
Lighttpd: программное обеспечение веб-сервера с открытым исходным кодом, безопасное, быстрое, совместимое с отраслевыми стандартами, легко адаптируемое и оптимизированное для сред с высокой конфигурацией.
Libmicrohttpd: простой веб-сервер библиотеки C под управлением программного обеспечения GNU. API простой и быстрый.
shttpd: платформа веб-сервера на основе Mongoose.
CivetWeb: предоставляет простой в использовании, мощный встроенный веб-сервер C/C++ с дополнительной поддержкой CGI, SSL и Lua.
CppCMS: Бесплатная высокопроизводительная среда веб-разработки (не CMS).
Crow: микровеб-фреймворк C++ (вдохновленный Python Flask).
Kore: сверхбыстрый и гибкий веб-сервер/фреймворк для веб-приложений, разработанный на C.
libOnion: легкая библиотека, которая помогает создавать веб-серверы с использованием языка программирования C.
QDjango: веб-фреймворк, написанный на C++ и основанный на библиотеке Qt, пытающийся эмулировать API Django, отсюда и название.
Wt: библиотека C++ для разработки веб-приложений.
Стандартная библиотека C++: это набор классов и функций, написанных на базовом языке и являющийся частью самого стандарта C++ ISO.
Стандартная библиотека шаблонов: Стандартная библиотека шаблонов, STL
Комитет по стандартам ISO C++ : Комитет по стандартам C++
FMOD: простой в использовании кроссплатформенный звуковой движок и инструмент для создания игр с аудиоконтентом.
Максимилиан: библиотека цифровой обработки аудио и музыки C++.
OpenAL: аудиобиблиотека с открытым исходным кодом — кроссплатформенный аудио API.
Opus: полностью открытый, бесплатный и универсальный аудиокодек.
Speex: бесплатный кодек, устаревший Opus.
Tonic: простой в использовании и эффективный синтез звука на C++.
Vorbis: Ogg Vorbis — это полностью открытый, непатентованный, бесплатный универсальный формат сжатого аудио.
lisequence: библиотека C++ для представления и анализа данных популяционной генетики.
SeqAn: фокусируется на алгоритмах и структурах данных для анализа последовательностей биологических данных.
Vcflib: библиотека C++ для анализа и обработки файлов VCF.
Wham: Применить ассоциативное тестирование непосредственно к генетическим структурным вариантам в файлах BAM.
bzip2: совершенно бесплатное, непатентованное и высококачественное сжатие данных.
doboz: библиотека сжатия для быстрой распаковки
PhysicsFS: библиотека, обеспечивающая абстрактный доступ к различным архивам, в основном используемая в видеоиграх. Дизайн частично был вдохновлен файловой подсистемой Quake3.
KArchive: библиотека для создания, чтения, записи и управления файловыми архивами (такими как zip и tar), которая обеспечивает прозрачное сжатие и распаковку данных с использованием формата gzip через ряд подклассов QIODevice.
LZ4: очень быстрый алгоритм сжатия.
ЛЖАМ: База данных со сжатием без потерь, степень сжатия близка к ЛЗМА, но скорость распаковки значительно выше.
LZMA: стандартный и распространенный метод сжатия для формата 7z.
LZMAT: и его быстрая библиотека сжатия данных без потерь в реальном времени.
Minizip: последнее исправление ошибок Zlib, поддерживает объединение дисков PKWARE, шифрование AES и буферизацию ввода-вывода.
Snappy: быстрое сжатие и распаковка
ZLib: Очень компактная библиотека сжатия потоков данных.
ZZIPlib: обеспечивает доступ для чтения к ZIP-архивам.
Boost.Compute: вычислительная библиотека C++ на графическом процессоре для OpenCL.
Bolt: библиотека шаблонов C++, оптимизированная для графических процессоров.
C++React: библиотека реактивного программирования для C++11.
Intel TBB: строительные блоки Intel Threading
Libclsph: библиотека моделирования жидкости SPH с графическим ускорением на основе OpenCL.
OpenCL: открытый стандарт параллельного программирования гетерогенных систем.
OpenMP: API OpenMP.
Thrust: библиотека параллельных алгоритмов, аналогичная стандартной библиотеке шаблонов C++.
HPX: универсальная система выполнения C++ для параллельных и распределенных приложений любого размера.
VexCL: библиотека шаблонов векторных выражений C++ для OpenCL/CUDA.
Bcrypt: кросс-платформенный инструмент шифрования файлов, зашифрованные файлы переносятся на все поддерживаемые операционные системы и процессоры.
BeeCrypt: графическая библиотека быстрого шифрования с мощными функциями и удобным интерфейсом.
Botan: библиотека шифрования C++.
Crypto++: бесплатная библиотека C++ для схем шифрования.
GnuPG: полная реализация стандарта OpenPGP.
GnuTLS: библиотека безопасной связи, реализующая протоколы SSL, TLS и DTLS.
Libgcrypt: графическая библиотека шифрования на основе GnuPG.
Libmcrypt: потокобезопасный, предоставляющий унифицированный API.
LibreSSL: бесплатный протокол SSL/TLS, ответвление OpenSSL 2014 года.
LibTomCrypt: очень комплексный, модульный и портативный инструмент шифрования.
libsodium: библиотека шифрования на основе NaCI, продуманная и простая в использовании.
Nettle: базовая библиотека шифрования
OpenSSL: мощная коммерческая полнофункциональная библиотека шифрования с открытым исходным кодом.
hiberlite: объектно-реляционное отображение C++ для Sqlite3
LevelDB: быстрое хранилище значений ключей
LMDB: встроенное хранилище значений ключей, соответствующее четырем основным элементам базы данных.
MySQL++: оболочка C++, инкапсулирующая C API MySql.
RocksDB: Быстрое хранилище встроенных ключей-значений из Facebook
SQLite: полностью встроенная полнофункциональная реляционная база данных размером всего несколько сотен КБ, которую можно правильно включить в ваш проект.
MongoDB: база данных на основе распределенного файлового хранилища.
Boost.Test: библиотека тестирования Boost.
Подвох: очень стильная собственная платформа C++, которая содержит только заголовочные файлы для модульного тестирования, разработки через тестирование и разработки через поведение.
CppUnit: среда тестирования C++, перенесенная из JUnit.
GoogleTest: среда тестирования Google C++.
ig-debugheap: многоплатформенная куча отладки для отслеживания ошибок памяти.
MemTrack: для отслеживания распределения памяти в C++.
MicroProfile: кроссплатформенный профилировщик сетевых попыток.
UnitTest++: облегченная среда модульного тестирования C++.
C++ B-Tree: библиотека шаблонов, которая реализует контейнеры памяти команд на основе структуры данных B-дерева.
Hashmaps: реализация алгоритма хэш-таблицы открытой адресации на C++.
Cocos2d-x: кроссплатформенная среда для создания 2D-игр, интерактивных книг, презентаций и других графических приложений.
Grit: проект сообщества по созданию бесплатного игрового движка для 3D-игр с открытым миром.
lrrlicht: высокопроизводительный #D-движок реального времени с открытым исходным кодом, написанный на языке C++.
PolyCode: платформа с открытым исходным кодом для создания игр, реализованная на C++ (в комплекте с Lua).
bgfx: библиотека кроссплатформенного рендеринга.
Каир: библиотека 2D-графики, поддерживающая несколько устройств вывода.
Horde3D: небольшой движок 3D-рендеринга и анимации.
Magnum: графический движок C++11 и OpenGL 2D/3D.
Ogre 3D: ориентированный на сцены, гибкий движок 3D-рендеринга в реальном времени, написанный на C++ (не игровой движок).
OpenSceneGraph: высокопроизводительный набор инструментов для 3D-графики с открытым исходным кодом.
Panda3D: Фреймворк для 3D-рендеринга и разработки игр, написанный на Python и C++.
Skia: Полная библиотека 2D-графики для рисования текста, графики и изображений.
urho3d: кроссплатформенный рендеринг и игровой движок.
Boost.GIL: Общая библиотека изображений.
CImg: небольшой набор инструментов C++ с открытым исходным кодом для обработки изображений.
FreeImage: библиотека с открытым исходным кодом, поддерживающая распространенные форматы изображений и другие форматы, необходимые современным мультимедийным приложениям.
GDCM: массовая библиотека DICOM
ITK: Кроссплатформенная система анализа изображений с открытым исходным кодом.
Magick++: интерфейс C++ к программе ImageMagick.
OpenCV: библиотека компьютерного зрения с открытым исходным кодом.
tesseract-ocr: механизм оптического распознавания символов
VIGRA: универсальная библиотека компьютерного зрения C++ для анализа изображений.
ВТК: система бесплатного программного обеспечения с открытым исходным кодом для компьютерной 3D-графики, обработки изображений и визуализации.
gettext: GNU gettext
IBM ICU: библиотеки C, C++ и Java, обеспечивающие поддержку Unicode и глобализации.
libiconv: библиотека преобразования кодировок между различными кодировками символов
заморожено: генератор синтаксического анализа Джейсона для C/C++
Jansson: библиотека языка C для кодирования, декодирования и обработки данных Jason.
jbson: библиотека для создания и итерации данных BSON и документов Json на C++14.
JeayeSON: очень надежная библиотека C++ JSON, содержащая только файлы заголовков.
JSON++: анализатор JSON C++.
json-parser: анализатор JSON, написанный на портативном ANSI C с очень низким объемом памяти.
json11: мини-библиотека JSON C++11.
джут: очень простой синтаксический анализатор C++ JSON.
ibjson: библиотека анализа и печати JSON на языке C, легко интегрируемая с любой моделью.
libjson: облегченная библиотека JSON.
PicoJSON: анализ и сериализация JSON на C++, включая только файлы заголовков.
Qt-Json: простой класс для анализа данных JSON и иерархий QVariant.
QJson: библиотека на основе Qt для сопоставления данных JSON с объектами QVariant.
RepidJSON: быстрый генератор синтаксического анализа JSON для C++, включая API-интерфейсы в стиле SAX и DOM.
Boost.Log: разработан как модульный и расширяемый.
easyloggingpp: библиотека журналирования C++, содержащая только один заголовочный файл.
Log4cpp: серия библиотек C++, которые гибко добавляют журналы в файлы, системные журналы, IDSA и другие места.
templog: легкая библиотека C++, которая может добавлять журналирование в ваши приложения C++.
btsk: инструмент запуска дерева поведения игры
Развивающиеся объекты: основанная на шаблонах библиотека эволюционных вычислений ANSI C++, которая поможет вам очень быстро написать собственные алгоритмы стохастической оптимизации.
Caffe: быстрый фреймворк нейронной сети
CCV: современная библиотека компьютерного зрения, ядром которой является язык C.
mlpack: расширяемая библиотека машинного обучения C++.
OpenCV: библиотека компьютерного зрения с открытым исходным кодом.
Рекомендатор: библиотека C для рекомендаций/предложений по продуктам с использованием совместной фильтрации.
SHOGUN: инструмент машинного обучения Shogun
sofia-ml: набор быстрых дополнительных алгоритмов для машинного обучения.
Armadillo: высококачественная библиотека линейной алгебры C++, которая обеспечивает хороший баланс между скоростью и простотой использования. Синтаксис очень похож на MatlAB.
blaze: Высокопроизводительная математическая библиотека C++ для плотных и разреженных алгоритмов.
ceres-solver: библиотека C++ от Google для моделирования и решения больших сложных нелинейных задач наименьших квадратов.
CGal: коллекция эффективных и надежных алгоритмов набора.
CML: Бесплатная математическая библиотека C++ для игр и графики.
Eigen: библиотека заголовков шаблонов C++ высокого уровня, охватывающая линейную алгебру, матричные, векторные операции, численные решения и другие связанные алгоритмы.
GMTL: Библиотека шаблонов математической графики — это набор инструментов для широкой реализации базовой графики.
GMP: библиотека C/C++ для высокоточных вычислений, работающая с целыми числами со знаком, рациональными числами и числами с плавающей запятой.
GStreamer: библиотека для построения графиков компонентов обработки мультимедиа.
LIVE555 Streaming Media: библиотека потокового мультимедиа с использованием протоколов открытых стандартов (RTP/RTCP, RTSP, SIP).
libVLC: медиа-фреймворк libVLC (VLC SDK).
QtAV: платформа воспроизведения мультимедиа, основанная на Qt и FFmpeg, которая поможет вам легко написать проигрыватель.
SDL: Простое прямое управление медиа-слоем.
SFML: быстрая и простая мультимедийная библиотека.
Box2D: физический движок 2D-игр.
Bullet: физический движок 3D-игры.
Бурундук: быстрая и легкая библиотека физики 2D-игр.
LiquidFun: физический движок 2D-игр.
ODE: Open Dynamics Engine — высокопроизводительная библиотека с открытым исходным кодом для моделирования динамики твердого тела.
ofxBox2D: оболочка платформы Box2D с открытым исходным кодом.
Simbody: высокопроизводительная C++ библиотека динамики/физики многотельных тел для моделирования биомеханики суставов и механических систем, таких как транспортные средства, роботы и человеческие скелеты.
MOOS-Ivp: набор модулей C++ с открытым исходным кодом, которые обеспечивают автономность роботизированных платформ, в частности автономных морских транспортных средств.
MRPT: набор инструментов для программирования мобильных роботов
PCL: Point Cloud Library — это независимый крупномасштабный открытый проект для обработки 2D/3D-изображений и облаков точек.
Библиотека робототехники: автономная библиотека C++, включающая динамику роботов, планирование движения и управление.
RobWork: коллекция библиотек C++ для моделирования и управления робототехническими системами.
ROS: Операционная система роботов, которая предоставляет библиотеки и инструменты, помогающие разработчикам программного обеспечения создавать приложения для роботов.
ChaiScript: простой в использовании встроенный язык сценариев для C++.
Lua: небольшой и быстрый механизм сценариев для файлов конфигурации и основных сценариев приложений.
luacxx: API C++11 для создания привязок Lua.
SWIG: Генератор оболочки/интерфейса, который позволяет вашему коду C++ связываться с JavaScript, Perl, PHP, Python, Tcl и Ruby.
V7: Встроенный движок JavaScript.
V8: быстрый движок JavaScript от Google, который можно встроить в любое приложение C++.
Cap'n Proto: формат быстрого обмена данными и система RPC.
хлопья: библиотека сериализации C++11
FlatBuffers: библиотека сериализации, эффективно использующая память.
MessagePack: эффективная библиотека двоичной сериализации для C/C++, например JSON.
ProtoBuf: буфер протокола, формат обмена данными Google.
SimpleBinaryEncoding: кодирование и декодирование информации приложения в двоичном формате для приложений с малой задержкой.
Бережливость: эффективный межъязыковой IPC/RPC, используемый в C++, Java, Python, PHP, C# и многих других языках, первоначально разработанный Facebook.
libvpx: SDK для кодирования и декодирования VP8/VP9.
FFMpeg: Полное кроссплатформенное решение для записи, преобразования видео и аудио потоков.
libde265: открытая реализация видеокодека h.265.
OpenH264: кодек H.364 с открытым исходным кодом.
Theora: бесплатный формат сжатия видео с открытым исходным кодом.
LibXml++: синтаксический анализатор xml для C++.
PugiXML: легкий, простой и быстрый анализатор XML для C++, поддерживающий XPath.
RapidXML: попытка создать самый быстрый анализатор XML, сохраняя при этом простоту использования, портативность и разумную совместимость с W3C.
TinyXML: простой и небольшой синтаксический анализатор XML C++, который можно легко интегрировать в другие проекты.
TinyXML2: простой и быстрый синтаксический анализатор C++ CML, который можно легко интегрировать в другие проекты.
TinyXML++: совершенно новый интерфейс TinyXML, который использует многие преимущества C++, шаблоны, исключения и улучшенную обработку исключений.
Xerces-C++: анализатор проверки XML, написанный на подмножестве переносимого C++.
thread_local
static_assert
нульптр
нет, кроме
тип объявления
constexpr
char16_t
char32_t
выравнивание
Alignas
авто
сорт
по умолчанию
удалить
экспорт
внешний
в соответствии
изменчивый
размер
структура
с использованием
is_void
is_integral
is_floating_point
is_array
is_enum
is_union
is_class
is_function
is_pointer
is_lvalue_reference
is_rvalue_reference
is_member_object_pointer
is_member_function_pointer
is_fundamental
is_arithmetic
is_scalar
is_object
is_compound
is_reference
is_member_pointer
is_const
is_летучие
is_тривиально
is_тривиально_копируемый
is_standard_layout
is_literal_type
is_empty
is_polymorphic
is_abstract
is_signed
is_unsigned
is_constructible
is_тривиально_конструктивно
is_nothrow_constructible
is_default_constructible
is_тривиально_default_constructible
is_nothrow_default_constructible
is_copy_constructible
is_тривиально_copy_constructible
is_nothrow_copy_constructible
is_move_constructible
is_тривиально_move_constructible
is_nothrow_move_constructible
is_assignable
is_тривиально_назначаемый
is_nothrow_assignable
is_copy_assignable
is_тривиально_copy_assignable
is_nothrow_copy_assignable
is_move_assignable
is_тривиально_move_assignable
is_nothrow_move_assignable
is_destructible
is_тривиально_разрушаемый
is_nothrow_destructible
has_virtual_destructor
станд::массив
std::forward_list
станд::начать
станд::конец
станд::переместить
Инициализация контейнера
размещать
std::unordered_map
std::unordered_multimap
std::unordered_set
std::unordered_multiset
std::make_tuple
станд::получить
станд::галстук
std::hash<std::string>
std::hash<std::u16string>
std :: hash <std :: u32String>
std :: hash <std :: wstring>
std :: hash <std :: error_code>
std :: hash <std :: bitset>
std :: hash <std :: type_index>
std :: hash <std :: ecector <bool >>
std :: shared_ptr
std :: sleed_ptr
std :: unique_ptr
auto_ptr (устарел)
basic_regex
sub_match
match_results
CV квалифицированная функция
кавычка квалификация
std :: function
std :: bind
std :: bad_function_call
mem_fn
введите псевдоним
Инициализация члена класса
функтор
делегат конструктор
Наследует конструктор
переместить конструктор
Переместите оператор назначения
Угловые кронштейны ">"
Шаблон псевдонима
Внешний шаблон
вариационный шаблон
Параметры шаблона по умолчанию
std :: atomic <bool>
std :: atomic <char>
std :: atomic <подписанный char>
std :: atomic <unsigned char>
std :: atomic <short>
std :: atomic <unsigned short>
std :: atomic <int>
std :: atomic <unsigned int>
std :: atomic <long>
std :: atomic <unsigned long>
std :: atomic <Long Long>
std :: atomic <unsigned long long>
std :: atomic <char8_t>
std :: atomic <char16_t>
std :: atomic <char32_t>
std :: atomic <wchar_t>
std :: atomic <std :: int8_t>
std :: atomic <std :: uint8_t>
std :: atomic <std :: int16_t>
std :: atomic <std :: uint16_t>
std :: atomic <std :: int32_t>
std :: atomic <std :: uint32_t>
std :: atomic <std :: int64_t>
std :: atomic <std :: uint64_t>
std :: atomic <std :: int_least8_t>
std :: atomic <std :: uint_least8_t>
std :: atomic <std :: int_least16_t>
std :: atomic <std :: uint_least16_t>
std :: atomic <std :: int_least32_t>
std :: atomic <std :: uint_least32_t>
std :: atomic <std :: int_least64_t>
std :: atomic <std :: uint_least64_t>
std :: atomic <std :: int_fast8_t>
std :: atomic <std :: uint_fast8_t>
std :: atomic <std :: int_fast16_t>
std :: atomic <std :: uint_fast16_t>
std :: atomic <std :: int_fast32_t>
std :: atomic <std :: uint_fast32_t>
std :: atomic <std :: int_fast64_t>
std :: atomic <std :: uint_fast64_t>
std :: thread
std :: mutex
std :: lock
std :: call_once
Std :: Atomic
std :: cond_ition_variable
std :: async
изменчивый
Std :: Future
std :: thread_local
std :: exception_ptr
std :: make_exception_ptr
std :: current_exception
std :: rethrow_exception
std :: nested_exception
std :: throw_with_nested
std :: rethrow_if_nested
std :: error_category
std :: generic_category
std :: error_condition
std :: errc
std :: error_code
std :: system_error
Синтаксис: __pragma (строка буквально)
_Прагма оператор
_cplusplus macro
для цикла для (x: range)
авиакомпания
АКЛЮЧЕНИЕ
std :: alignment_of
std :: aligned_storage
std :: max_align_t
std :: align
явное ключевое слово
Синтаксис: static_assert (постоянное выражение, "Приглашенная строка")
Статическое утверждение
числовой предел
сырая строка
Синтаксис возврата трассировки синтаксиса типа
Синтаксис расширенного друга
Расширенное целое число
неограниченная ассоциация
Встроенное пространство имен
Пользовательский литерал
Сильно напечатал перечисления
случайное устройство
std :: ref и std :: cref
Constexpr
лямбда-выражение
nullptr
Предотвратить сужение типа
Список инициализаторов - список инициализатора
initializer_list (как входной параметр)
Синтаксис и семантики единой инициализации
ПОД
долго долго
Переместить семантику
rvalue ссылка
C99 функции
Общие правила Sfinae
Проверьте, является ли тип std :: nullptr_t
is_final (проверьте, является ли тип окончательного типа класса)
Exchange (замените фактический параметр новым значением и верните его предыдущее значение)
integer_sequence (реализация целочисленной последовательности времени компиляции)
RBEGIN (возвращает обратный итератор, указывающий на контейнер или массив)
Crbegin (возвращает обратный итератор, указывающий на контейнер или массив)
Поврежден (возвращает обратный итератор контейнера или массива)
Crend (возвращает обратный итератор контейнера или массива)
make_reverse_iterator (создать std :: reverse_iterator с типами, выведенными из аргументов)
Начните (возвращает итератор, указывающий на начало контейнера или массива)
Cbegin (возвращает итератор, указывающий на начало контейнера или массива)
конец (возвращает итератор, указывающий на конец контейнера или массива)
Кенд (возвращает итератор, указывающий на конец контейнера или массива)
RBEGIN (возвращает обратный итератор, указывающий на контейнер или массив)
Crbegin (возвращает обратный итератор, указывающий на контейнер или массив)
Поврежден (возвращает обратный итератор контейнера или массива)
Crend (возвращает обратный итератор контейнера или массива)
зарегистрироваться
байт (тип байта)
is_aggregate (проверяет, является ли тип агрегатным типом)
is_swappable_with (проверяет, можно ли обменять объект типа с объектами одинаковых или разных типов)
is_swappable (проверяет, можно ли обменять объект типа с помощью объекта одного и того же типа или другого типа)
is_nothrow_swappable_with (проверяет, можно ли обменять объект типа с объектами одинаковых или разных типов)
is_nothrow_swappable (проверяет, можно ли обменять объект типа с помощью объекта одного и того же типа или другого типа)
is_invocable (проверяет, можно ли вызвать тип с данным типом аргумента (как с std :: invoke))
is_invocable_r (проверяет, можно ли вызвать тип с данным типом аргумента (как с std :: invoke))
is_nothrow_invocable (проверяет, можно ли вызвать тип с данным типом аргумента (как с std :: invoke))
is_nothrow_invocable_r (проверяет, можно ли вызвать тип с данным типом аргумента (как с std :: invoke))
invoke_result (производство типа результата вызова вызываемого объекта с помощью набора фактических параметров)
void_t (шаблон псевдонима переменной параметров)
соединение (логическая и мета-функция переменных параметров)
дизъюнкция (логическая или мета-функция с переменными параметрами)
ndisjunctionegation (логическая неэлементная функция)
Integral_Constant (константа времени компиляции указанного типа с указанным значением)
as_const (получить ссылку на констант на его параметр)
Применить (вызовите функцию с помощью кортежа аргументов)
make_from_tuple (конструирует объект из кортежа аргументов)
Необязательно (может или не может удерживать обертку для объекта)
Make_optional (создать дополнительный объект)
std :: swap (std :: Необязательно) (Специализированный алгоритм STD :: SWAP)
std :: hash <std :: Необязательно> (специализированный алгоритм std :: hash)
nullopt_t (необязательный индикатор типа с неонициализированным состоянием)
BAD_OPTIONAL_ACCESS (исключение, указывающее проверяемый доступ к необязательному без значения)
nullopt (объект типа nullopt_t)
вариант (идентифицируемый тип идентифицируемый союз)
Посетите (вызовите предоставленный объект функции с каждым аргументом, удерживаемым одним или несколькими вариантами)
holds_alternative (проверяет, имеет ли вариант в настоящее время заданный тип)
std :: get (std :: variant) (прочитайте значение варианта с данным индексом или типом (если тип уникален), добавьте исключение по ошибке)
get_if (с данным индексом или типом (если он уникален), получите указатель на значение заостренного варианта, верните нулевый указатель по ошибке)
std :: swap (std :: variant) (специализированный алгоритм STD :: Swap)
моностат (тип заполнителя, используемый в качестве первого необязательного варианта нерезового варианта)
bad_variant_access (исключение брошено при незаконном доступе к значению варианта)
variant_size (получите размер списка вариантов вариантов во время компиляции)
variant_size_v (получить размер списка вариантов вариантов во время компиляции)
variant_alternative (получает тип необязательного, указанного по его подписку во время компиляции)
variant_alternative_t (получает тип необязательного, указанного по его подписку во время компиляции)
std :: hash <std :: variant> (специализированный алгоритм std :: hash)
variant_npos (подписка незаконного варианта)
Любой (объект, который может содержать экземпляры любого типа, конструируемого на копирование (подражаемая) тип)
std :: swap (std :: any) (специализированный алгоритм STD :: SWAP)
any_cast (доступ к типам, доступ к содержащемуся объекту)
make_any (создать любой объект)
BAD_ANY_CASC (исключение, брошенное any_cast, которое возвращается по значению, когда типы не совпадают)
TO_CHARS (преобразование целочисленного или плавающего значения температуры в изображение последовательности символов)
from_chars (преобразовать последовательность символов в целое число или значение плавающей запятой)
chars_format (укажите формат, используемый std :: to_chars и std :: from_chars)
пусто (проверьте, пуст ли контейнер)
Данные (получает указатель на основной массив)
INSERT_OR_ASSIGN (вставьте элемент или присвоение текущему элементу, если ключ уже существует)
try_emplace (если ключа не существует, вставьте его на месте, если ключ существует, ничего не делайте)
Извлечь (выпустите узел из другого контейнера)
слияние (соединения узлов из другого контейнера)
INSERT_OR_ASSIGN (вставьте элемент или присвоение текущему элементу, если ключ уже существует)
try_emplace (если ключа не существует, вставьте его на месте, если ключ существует, ничего не делайте)
Извлечь (выпустите узел из другого контейнера)
слияние (соединения узлов из другого контейнера)
<h5 id = "user-content-cpp_headfile_initializer_list" tabindex = "-1" class = "head