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


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


  • Полностью переработано определение шаблонов в Си++. Теперь уже нельзя сказать, что
    шаблоны Си++ являются лишь слегка замаскированными синтаксическими подстановками. Для
    них обязателен синтаксический разбор и контроль семантики (в максимально возможной степени).
    Неоднозначности внутри тел шаблонов, вызываемые неизвестной природой типовых параметров,
    явно разрешаются посредством ключевого словом typename.
  • Допускаются шаблонные функции-члены нешаблонных классов, вложенные шаблонные
    классы и шаблоны - параметры шаблонов.
  • Виртуальные функции могут возвращать тип, отличный от типа подменяемой функции
    базового класса, если эти типы являются указателями или ссылками на производный и базовый
    класс.
  • Перечислимый тип (enum) окончательно утвердился как самостоятельный тип, не являющийся
    ни одним из целочисленных типов. Теперь разрешено совместное использование функций,
    основанное на этом различии; константа 0 перечислимого типа более не считается целочисленным
    0, запрещено ее неявное преобразование к указательному типу.
  • Ослаблено ограничение на тип, возвращаемый операцией ->. Теперь это может быть
    практически произвольный тип.
  • Добавлено (на редкость бессмысленное) ключевое слово mutable, позволяющее допускать
    изменение членов объекта константного класса.
    Более подробно некоторые из этих изменений рассмотрены в статье [6].




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