Индустрия программирования


3. Современное состояние языка



Приведем беглое описание новых возможностей языка, введенных с момента публикации ARM и
до публикации проекта стандарта в апреле 1995г.

  1. Ведены новые ключевые слова-синонимы для операций (and, and_eq, bitand, bitor, compl,
    not, or, or_eq, xor, xor-equ).
  2. В языке появился булевский тип данных bool и литералы этого типа true и false.
  3. Появился механизм пространств имен (namespace), облегчающий совместную реализацию
    проектов группами программистов и позволяющий избегать проблем при использовании
    нескольких библиотек (ключевые слова namespace и using).
  4. Новое ключевое слово explicit позволяет запретить нежелательное использование
    конструкторов как функций преобразования типов.
  5. Изменены синтаксис и семантика для изменения прав доступа к членам классов. Новый
    механизм позволяет использовать единый синтаксис для использования членов пространств имен и
    членов классов. При этом несколько изменились правила выбора наиболее подходящей из набора
    совместно используемых функций (на основе использования ключевого слова using).
  6. Добавлен механизм явного использования rtti (включающий операцию с ключевым словом
    typeid и класс type_info стандартной библиотеки).
  7. Добавлены новые и скорректированы старые способы явного преобразования типов
    (static_cast, dynamic_cast, const_cast и reinterpret_cast).
  8. Добавлена новая операция new[], парная к операции delete[]; для операций new и delete
    изменена семантика выражения размещения с целью более безопасной обработки исключительных
    ситуаций в конструкторах. Стандартная операция new теперь не может вернуть значение 0 в случае
    нехватки памяти или ошибки, а генерирует исключительную ситуацию. Старый вариант,
    возвращающий 0, доступен программисту только c явным указанием.
  9. Объявления переменных теперь возможны не только в заголовке for-цикла, но и в операторах
    if, while, do-while, switch.
  10. Более точно определено время жизни временных объектов в выражении. Теперь время их
    жизни ограниченно полным выражением, а не концом текущего блока, как сказано в ARM.



    - Начало -  - Назад -  - Вперед -