++ — компилируемый, статически типизированный язык программирования общего назначения.
Приведе́ние (преобразование) ти́па — в информатике преобразование значения одного типа в значение другого типа.
Си — компилируемый статически типизированный язык программирования общего назначения, разработанный в 1969—1973 годах сотрудником Bell Labs Деннисом Ритчи как развитие языка Би. Первоначально был разработан для реализации операционной системы UNIX, но впоследствии был перенесён на множество других платформ. Согласно дизайну языка, его конструкции близко сопоставляются типичным машинным инструкциям, благодаря чему он нашёл применение в проектах, для которых был свойственен язык ассемблера, в том числе как в операционных системах, так и в различном прикладном программном обеспечении для множества устройств — от суперкомпьютеров до встраиваемых систем. Язык программирования Си оказал существенное влияние на развитие индустрии программного обеспечения, а его синтаксис стал основой для таких языков программирования, как C++, C#, Java и Objective-C.
Перегрузка операторов в программировании — один из способов реализации полиморфизма, заключающийся в возможности одновременного существования в одной области видимости нескольких различных вариантов применения оператора, имеющих одно и то же имя, но различающихся типами параметров, к которым они применяются.
void — тип, спецификатор типа и ключевое слово в языках программирования С, C++, Java, C#, Objective-C, D, ActionScript и PHP.
C++11 или ISO/IEC 14882:2011 — новая версия стандарта языка C++, вместо ранее действовавшего ISO/IEC 14882:2003. Новый стандарт включает дополнения в ядре языка и расширение стандартной библиотеки, в том числе большую часть TR1 — кроме, вероятно, библиотеки специальных математических функций. Несмотря на то, что работа над стандартом уже завершена — данная статья, возможно, не будет точно соответствовать конечному варианту стандарта. Разные версии черновика будущего стандарта наряду с некоторыми другими документами, посвящёнными стандартизации C++, публикуются на сайте комитета ISO C++.
delete
— ключевое слово языка программирования C++, которое было изначально введено в стандарт для осуществления освобождения памяти, выделенной оператором new
. В модернизированном стандарте C++11 ключевому слову delete
была также отведена роль спецификатора доступа к специальным функциям-членам классов, который запрещает их использование.
Свёртка констант и распространение констант — часто используемые в современных компиляторах оптимизации, уменьшающие избыточные вычисления, путём замены константных выражений и переменных на их значения. Так же часто применяется расширенный алгоритм sparse conditional constant propagation, выполняющий одновременно распространение констант и удаление некоторого мёртвого кода.
C++14 — неофициальное название версии стандарта C++ ISO/IEC JTC1. C++14 можно рассматривать как небольшое расширение над C++11, содержащее в основном исправления ошибок и небольшие улучшения. Комитет разработки нового стандарта опубликовал черновик N3690 15 мая 2013. Рабочая версия черновика N3936 была опубликована 2 марта 2014 года, заключительный период голосования закрыт 15 августа 2014 года, а результат был объявлен 18 августа 2014 года.
В языках программирования C, C++, и D const является квалификатором типа: ключевое слово применяется к типу данных, показывая, что данные константны (неизменяемы). Это может быть использовано при объявлении (декларировании) констант. Отличительная особенность const
в C-подобных языках программирования проявляется при его комбинировании с типами данных, что дает сложное поведение в сочетании с указателями, ссылками, составными типами данных и при проверке типов.
Вариативный шаблон или шаблон с переменным числом аргументов в программировании — шаблон с заранее неизвестным числом аргументов, которые формируют один или несколько так называемых пакетов параметров.
Прямая передача — идиоматический механизм переноса атрибутов параметров в процедурах обобщённого кода языка C++. Он был стандартизирован в редакции стандарта C++11 с помощью функционала библиотеки STL и синтаксиса передаваемыx ссылок, а также унифицирован для применения совместно с вариативными шаблонами.
C++20 (латиницей) или Си++20 (кириллицей) — название стандарта ISO/IEC языка программирования C++. Спецификация опубликована в декабре 2020 года.
Псевдоним типа — средство языка программирования C++, введённое в синтаксис стандарта C++11 для повышения удобства обращения к пользовательским и встроенным типам данных.
Пакет параметров шаблона в языке программирования C++ — параметр шаблонной функции или класса, состоящий из произвольного количества разнородных элементов. Представляет собой краткую запись гетерогенного набора аргументов вариативного шаблона, определяемую с помощью многоточия ...
.
Выражения свёртки — элемент синтаксиса языка программирования C++, введённый в стандарте начиная с C++17 и предназначенный для свёртки пакетов параметров вариативных шаблонов с необязательным начальным значением.
decltype
— ключевое слово языка программирования C++, которое появилось в обновлённом стандарте C++11. Наряду с ключевым словом auto
оно используется для выведения типов выражений, получаемых в качестве своего аргумента.
Структурное связывание — синтаксическое нововведение стандарта языка программирования C++17, предназначенное для распаковки сложных нестатических типов данных и представления их в виде композиции своих составляющих элементов.
Несовместимость Си и C++ — особенности языков программирования C++ и Си, затрудняющие перенос кода на языке Си на C++.
Синтаксис определяет то, как должны правильно записываться языковые конструкции, в то время как семантика определяет значения языковых конструкций. Синтаксис языка Си достаточно сложный, а семантика неоднозначная. Основными двумя особенностями языка на момент его появления были унифицирование работы с массивами и указателями, а также схожесть того, как что-либо объявляется, с тем, как это в дальнейшем используется в выражениях. Однако в последующем эти две особенности языка были в числе наиболее критикуемых, и обе являются сложными для понимания среди начинающих программистов. Стандарт языка, определяя его семантику, не стал слишком сильно ограничивать реализации языка компиляторами, но этим самым сделал семантику недостаточно определённой. В частности, в стандарте есть 3 типа недостаточно определённой семантики: определяемое реализацией поведение, не заданное стандартом поведение и неопределённое поведение.