Главная » Архив меток: c++17

Архив меток: c++17

RPC — повод попробовать новое в C++ 14 / 17

Несколько лет назад разработчики на C++ получили долгожданный стандарт C++ 11, принесший много нового. И у меня был интерес быстрее перейти к его использованию в повседневно решаемых задачах. Перейти к C++ 14 и 17 такого не было. Казалось, нет того набора фич, который бы заинтересовал. Весной я все же решил посмотреть на новшества языка и что-нибудь попробовать. Чтобы поэкспериментировать с ...

Читать далее »

Делаем Shrimp еще полезнее: добавляем перекодирование картинок в другие форматы

К своему большому удивлению мы время от времени получаем вопросы из категории «А для чего может потребоваться встраиваемый HTTP-сервер на C++?» К сожалению, на простые вопросы отвечать сложнее всего. С начала 2017-го года наша небольшая команда разрабатывает OpenSource-библиотеку RESTinio для встраивания HTTP-сервера в C++ приложения. Иногда лучшим ответом является пример кода. Демо-проект представляет из себя простой Web-сервис, который получает запросы ...

Читать далее »

Shrimp: масштабируем и раздаем по HTTP картинки на современном C++ посредством ImageMagic++, SObjectizer и RESTinio

Наша небольшая команда занимается развитием двух OpenSource инструментов для C++разработчиков — акторного фреймворка SObjectizer и встраиваемого HTTP-сервера RESTinio. При этом мы регулярно сталкиваемся с парой нетривиальных вопросов: какие фичи добавлять в библиотеку, а какие оставлять «за бортом»? как наглядно показывать «идеологически правильные» способы использования библиотеки? Хорошо, когда ответы на такие вопросы появляются по ходу использования наших разработок в реальных проектах, ...

Читать далее »

Релиз CLion 2018.1: новые возможности из С++17, поддержка WSL, CMake Install, плагин для Rust и многое другое

Привет, Хабр! Вот и подоспел первый релиз CLion в этом году — 2018.1! В этом посте мы расскажем, что мы успели реализовать за эти месяцы и какие планы у нас на следующий релиз. Cначала очень коротко о главном. В этот релиз вошли: Поддержка языка C++ Поддержка возможности C++17: structured binding Поддержка возможности C++17: операторы if и switch с инициализаторами Множество ...

Читать далее »

C++ велосипедостроение для профессионалов

Классы, которые люди самостоятельно пишут, а потом копируют из одного проекта в другой, хотя они уже есть в стандартных библиотеках, в простонародье называются велосипедами. Первый вопрос, который возникает при встрече с таким «велосипедом» — зачем люди переписывают что-то заново? Вариантов может быть несколько. Некоторые делают это для самообучения: берут класс стандартной библиотеки, пишут его сами с нуля, сравнивают то, что получилось, с тем, что есть в стандартной библиотеке — в процессе узнают для ...

Читать далее »

[Перевод] Рефакторинг с использованием C++17 std::optional

Вы можете реализовать опциональный тип с помощью нескольких вариантов, но с помощью C++17 вы сможете реализовать это с помощью наиболее удобного варианта: std::optional. В разработке существует множество ситуаций, когда вам надо выразить что-то с помощью "optional" — объекта, который может содержать какое-либо значение, а может и не содержать. Сегодня я приготовил для вас одну задачу по рефакторингу, на который вы ...

Читать далее »

[Перевод] Использование std::optional в С++17

Давайте возьмём пару от двух типов <YourType, bool> — что вы можете сделать с композицией подобного рода? Это обёртка для вашего типа и флаг показывает, инициализировано ваше значение или нет. В этой статье я расскажу вам про std::optional — новый вспомогательный тип, добавленный в C++17. Давайте посмотрим, где это может быть полезно. Вступление Как было сказано ранее, флаг используется для ...

Читать далее »