Язык D использует статическую типизацию, обладает синтаксисом, схожим с C/C++, и обеспечивает производительность компилируемых языков. Язык D также заимствует некоторые возможности динамических языков, полезные для повышения эффективности разработки и обеспечения безопасности. Например, имеется поддержка: ассоциативных массивов, косвенного определения типов, автоматического управления памятью, средств параллельного программирования, шаблонов, компонентов для метапрограммирования. Опционально доступен сборщик мусора. В программах на языке D можно использовать библиотеки на языке C, а также некоторые библиотеки на C++ и Objective-C.
Среди изменений в новом выпуске:
- При запуске с опцией «-preview=fixImmutableConv» запрещено копирование переменных с типом «const void[]» в переменные с типом «void[]», так как такое копирование в последствии может привести к использованию вне контекста «const».
- Данные, загруженные через выражение «import«, теперь обрабатываются как бинарные строки (hex string) и могут быть неявно преобразованы в массивы значений с типами, отличными от «char».
New trait isCOMClass to detect if a type is a COM classA COM class inherits from a possibly user defined interface called IUnknown. To detect this during compilation use the trait __traits(isCOMClass, Type). O
- Добавлен типаж isCOMClass («__traits(isCOMClass, Type)») для определения в процессе компиляции, что тип является COM-классом.
- Значения с типом «bool», отличные от 0 и 1, теперь обрабатываются как небезопасные (не могут использоваться в коде с признаком «@safe»).
- В пакетном менеджере dub обеспечена проверка присутствия файлов «dub.selections.json» в родительских каталогах.
Источник: http://www.opennet.ru/opennews/art.shtml?num=62854