Компилятор
Выведение типа возвращаемых данных. Теперь можно вывести тип возвращаемых данных для обычных функций, включая функции с множественными операторами Return и рекурсивные функции. Подобным определениям функций предшествует ключевое слово auto, как в определениях функций, которые завершаются типом возвращаемых данных, однако завершающий тип возвращающих данных опущен
Неявное создание специальных функций-членов перемещения. Конструкторы перемещения и операторы назначения перемещения теперь неявно создаются при наличии подходящих условий, тем самым приводя компилятор в полное соответствие со ссылками rvalue C++.
Запрос и контроль выравнивания. Оформить запрос выравнивания переменной можно с помощью оператора alignof( ), а контроль над выравниванием осуществляется с помощью описателя alignas( ).alignof( ) возвращает байтовую границу, на которой необходимо разместить экземпляры типа; для ссылок этот оператор возвращает выравнивание ссылочного типа, а для массивов — выравнивание типа элемента. alignas( ) управляет выравниванием переменной; оператор берет константу или тип, где тип является сокращением alignas(alignof(type)).
Расширенный оператор sizeof. Размер переменной члена-класса или структуры теперь можно определить без экземпляра класса или структуры, используя только оператор sizeof( ).
Атрибуты - позволяют расширить синтаксис для функций, переменных, типов и других элементов программ, не определяя новые ключевые слова.
noexcept. Оператор noexcept теперь можно использовать для проверки возможности создания исключения выражением. Описатель noexcept теперь можно использовать, чтобы указать, что функция не создает исключений.
Встроенные пространства имен. Пространство имен теперь можно указать в строке и тем самым поместить его содержимое во внешнее пространство имен. Встроенные пространства имен можно использовать для создания библиотек с контролем версий, которые по умолчанию предоставляют свою самую актуальную версию. Предыдущие версии API остаются при этом доступными явным образом.
Разделители между цифрами. Одинарные кавычки можно вставить через регулярные интервалы для упрощения чтения длинных числовых литералов:
int x = 1'000'000;
C++ 14.
Диагностика
Визуализации отладчика. Добавьте визуализации отладчика Natvis в свой проект Visual Studio для удобства управления и интеграции механизмов контроля версий. NATVIS-файлы можно редактировать и сохранять во время сеанса отладки, и отладчик будет автоматически загружать изменения. Дополнительные сведения см. в этой записи блога.
Диагностика собственной памяти:
Сеансы диагностики памяти (Ctrl+Alt+F2) позволяют осуществлять мониторинг использования динамической памяти в собственном приложении во время сеанса отладки.
Снимки памяти фиксируют моментальный снимок содержимого кучи вашего приложения. Различия в состоянии кучи можно выявить, сравнив два снимка памяти. После остановки приложения можно просмотреть типы объектов, значения экземпляров и стеки запросов на выделение ресурсов по каждому экземпляру. Просмотр дерева вызовов по кадру стека для каждого моментального снимка.
Усовершенствования в области обнаружения взаимоблокировок и восстановления при вызове функций C++ из окон контрольных значений и интерпретации.
Усовершенствования в области диагностики компилятора Компилятор более эффективно выдает предупреждения о подозрительном коде. Добавлены новые предупреждения (например, затененные переменные и строки с несоответствующим форматом printf). Существующие предупреждения стали более понятными.
Visual Studio 2015 Visual C++ используется при:
Универсальные приложения Windows (C++) - приложения универсальной платформы Windows (UWP) реализуют набор принципов разработки, выделяющих простые пользовательские интерфейсы, организованные вокруг содержимого, которое автоматически настраивается в соответствии с разными размерами экранов на разных устройствах. Для создания пользовательского интерфейса используется разметка XAML, а для кода — собственный C++. Можно также создавать компоненты (DLL), которые могут применяться приложениями UWP, написанными на других языках. Область API для приложений UWP представляет собой Среда выполнения Windows — хорошо организованную библиотеку, которая предоставляет широкий набор служб для операционной системы.
Приложения Win32 для настольных систем (Visual C++)Можно создать приложение Win32, если необходимо предоставить собственное классическое приложение с оконным пользовательским интерфейсом, которое может работать в версиях Windows от Windows 95 до Windows 10. Приложение Win32 — это один из способов создания собственного классического приложения для Windows. Другим способом является приложение MFC. MFC выбирается по умолчанию для приложений (особенно приложений корпоративного типа) с большим числом элементов управления ИП или пользовательских элементов управления. MFC предоставляет удобные вспомогательные классы для манипуляций с текстом, печати и современных элементов интерфейса пользователя, таких как ленты. Эти классы недоступны в приложение Win32.
Новые возможности Visual C#
Visual C# — это реализация языка C# корпорацией Майкрософт. Поддержка Visual C# в Visual Studio обеспечивается с помощью полнофункционального редактора кода, компилятора, шаблонов проектов, конструкторов, мастеров кода, мощного и удобного отладчика и многих других средств. Библиотека классов .NET Framework предоставляет доступ ко многим службам операционной системы и к другим полезным, хорошо спроектированным классам, что существенно ускоряет цикл разработки.
Visual C# — это реализация языка C# корпорацией Майкрософт. Поддержка Visual C# в Visual Studio обеспечивается с помощью полнофункционального редактора кода, компилятора, шаблонов проектов, конструкторов, мастеров кода, мощного и удобного отладчика и многих других средств. Библиотека классов .NET Framework предоставляет доступ ко многим службам операционной системы и к другим полезным, хорошо спроектированным классам, что существенно ускоряет цикл разработки.
С# является основным языком для написания приложений для мобильной операционной системы Windows Phone, разрабатываемой Microsoft. Так же, можно программировать Windows-приложения, как с графическим интерфейсом, так и консольные («приложения для командной строки»), а также компоненты, допускающие многократное использование и создания интерактивных веб-сайтов.
Название
Можно получить неполное имя строки типа или элемента для использования в сообщении об ошибке, не выполняя жесткого программирования строки. Это позволяет сохранить правильный код при рефакторинге. Эта возможность также полезна для прикрепления связей MVC контроллера model-view-controller и инициирования событий изменения свойств.
Интерполяция строк
Для создания строк можно использовать выражения интерполяции строк. Интерполированное строковое выражение выглядит как шаблонная строка, которая содержит выражения. C# создает строку, заменяя выражения представлениями ToString результатов выражений. Интерполированную строку проще понять с точки зрения аргументов, чем Составное форматирование.
Определяемый условием Null доступ к элементам и индексация
Прежде чем осуществлять доступ к элементу (?.) или выполнять операцию с индексом (?[]), можно протестировать значение null в очень простой синтаксической конструкции. Эти операторы позволяют писать меньше кода для проверок значений null, особенно ели речь идет о внедрении в структуры данных. Если левый операнд или объектная ссылка имеет значение null, операция также возвращает значение null.
Теперь можно инициализировать конкретные элементы коллекции, которая поддерживает индексацию, например, инициализировать словарь.
Инициализатор коллекции и методы расширения Add
Теперь если в коллекции присутствует метод расширения Add, можно использовать инициализаторы для коллекций. Ранее метод Add должен был являться методом экземпляра.
Список литературы:
Культин Н. Б. С# в задачах и примерах. -СПб.: БХВ - Петербург, 2007. – 240 с.: ил.
Дейтел Х., Дейтел П. Как программировать на С++: Пер. с англ. - М,: Издательство БИНОМ, 1998 - 1024 с.: ил.
Шилдт, Герберт. Полный справочник по С, 4-е издание. : Пер. с англ. - М,: Издательский дом "Вильямс", 2002. - 704 с. : ил. - Парал.т ит. англ.
Шилдт, Герберт. Самоучитель С++, 3-е издание: пер. с англ. - СПб.: BVH - Санкт-Петербург, 1998.-688 с.
Павловская Т.А. С/C++. Программирование на языке высокого уровня. / Т.А. Павловская. - СПб.: Питер, 2002. - 464 с.: ил.