Pull to refresh
222
1.1
Antony Polukhin @antoshkka

Эксперт-разработчик C++ в Яндекс Go

Send message

Готовимся к С++20. Coroutines TS на реальном примере

Reading time9 min
Views33K
В C++20 вот-вот появится возможность работать с корутинами из коробки. Нам в Яндекс.Такси эта тема близка и интересна (под собственные нужды мы разрабатываем асинхронный фреймворк). Поэтому сегодня мы на реальном примере покажем читателям Хабра, как можно работать с C++ stackless корутинами.

В качестве примера возьмём что-то простое: без работы с асинхронными сетевыми интерфейсами, асинхронными таймерами, состоящее из одной функции. Например, попробуем осознать и переписать вот такую «лапшу» из колбеков:


void FuncToDealWith() {
    InCurrentThread();

    writerQueue.PushTask([=]() {
        InWriterThread1();

        const auto finally = [=]() {
            InWriterThread2();
            ShutdownAll();
        };

        if (NeedNetwork()) {
            networkQueue.PushTask([=](){
                auto v = InNetworkThread();
                if (v) {
                    UIQueue.PushTask([=](){
                        InUIThread();
                        writerQueue.PushTask(finally);
                    });
                } else {
                    writerQueue.PushTask(finally);
                }
            });
        } else {
            finally();
        }
    });
}

Читать дальше →
Total votes 32: ↑31 and ↓1+30
Comments61

С++20 на подходе! Встреча в Рапперсвил-Йона

Reading time7 min
Views19K
В начале июня в городе Рапперсвил-Йона завершилась встреча международной рабочей группы WG21 по стандартизации C++.

Вот что вас ждёт под катом:
  • Контракты и друзья
  • Концепты (без друзей)
  • __has_cpp_attribute(unlikely)
  • bit_cast<my_stuff>(some_array)
  • contains, shift_left, shift_right, ispow2, ceil2… и старые алгоритмы под новым соусом
  • atomic_ref
  • Что нового можно писать в шаблонах и чем это полезно
  • constexpr virtual foo()
  • Parallelism 2, Reflection и Executors TS

Также будет бонус: минисекция для экспертов:

  • user-declared virtual destructor не влияет на тривиальность типа
  • Куда можно будет засунуть восклицательный знак и чем это может быть полезно
  • constexpr std::regex mail_regex(R"((?:(?:[^<>()\[\].,;:\s@\"]+(?:\.[^<>()\[\].,;:\s@\"]+)*)|\".+\")@(?:(?:[^<>()\[\].,;:\s@\"]+\.)+[^<>()\[\].,;:\s@\"]{2,}))")

Добро пожаловать под кат
Total votes 51: ↑50 and ↓1+49
Comments427

C++20 всё ближе. Встреча в Джексонвилле

Reading time5 min
Views29K
В начале марта в американском городе Джексонвилле завершилась встреча международной рабочей группы WG21 по стандартизации C++. На встрече добавляли фишки в C++20, подготавливали к выпуску «превью» новых компонентов и полировали до блеска шероховатости языка.

Хотите посмотреть на новости и узнать:

  • Почему это тут золотая медаль справа?
  • Как там поживает кросплатформенный SIMD?
  • Что будет если 4000 поделить на последнюю пятницу февраля?
  • Какие подводные камни нашлись у сопрограмм?
  • Какие крутые фишки для многопоточного программирования будут в скором времени доступны?
Добро пожаловать под кат
Total votes 84: ↑82 and ↓2+80
Comments274

Ещё один шажок к C++20. Встреча в Альбукерке

Reading time4 min
Views20K
Из центральной части Канады — на юго-запад США! Альбукерке расположен в штате Нью-Мексико:



На встрече международного комитета по стандартизации C++, которая прошла в этом городе, приняли одно очень большое нововведение в С++20 и несколько маленьких.
Читать дальше →
Total votes 63: ↑62 and ↓1+61
Comments260

Пишем свою книгу заново

Reading time4 min
Views7.8K
Прошло 4 года с публикации «Пишем свою книгу» и вышло второе издание книги про Boost и C++. Настало время выпустить второе издание публикации!

В данной статье я поделюсь информацией о том, что осталось за бортом предыдущей статьи:



  • Можно ли прожить на гонорары от книги
  • Как заинтересовать людей в вашей книге
  • Как сделать примеры нагляднее и интерактивнее
  • Чем отличается выпуск второго издания, от написания первого
  • Пара простых советов для продвижения
  • Перевод книги на другие языки
Читать дальше →
Total votes 26: ↑26 and ↓0+26
Comments12

На шаг ближе к С++20. Итоги встречи в Торонто

Reading time8 min
Views28K
Несколько недель назад состоялась встреча международного комитета по стандартизации C++. На ней люди (в основном) не разменивались на мелочи и совершили несколько больших шагов на пути к С++20.

image

Главные новости:

  • Расширению Concepts быть в C++20!
  • Ranges, Networking и Coroutines/сопрограммы: выпущены в эксперимент в виде TS.
  • Модули: черновик TS готов.

Что всё это значит, как это упростит написание кода и что было ещё — читайте под катом.
Читать дальше →
Total votes 104: ↑104 and ↓0+104
Comments269

Что приняли в C++17, фотография Бьярне Страуструпа и опрос для C++20

Reading time4 min
Views53K

В начале марта в американском городе Кона завершилась встреча международной рабочей группы WG21 по стандартизации C++ в которой участвовали сотрудники Яндекса.
C++17 "приняли"!
Если быть совсем точным, решили, что пора передавать документ-черновик С++17 в вышестоящий орган ISO, который выпустит его в качестве стандарта, либо отправит обратно для исправления форматирования и некоторых других формальностей.

Заседания, как обычно, занимали целый день плюс дополнительно заседала подгруппа по работе с числами.

Основное время было посвящено полировке черновика C++17, но несколько небольших и интересных нововведений все же успели проскочить в C++17.
Подробности
Total votes 80: ↑77 and ↓3+74
Comments315

С++17 и С++2a: новости со встречи ISO в Иссакуа

Reading time7 min
Views23K
В начале ноября в американском городе Иссакуа завершилась встреча международной рабочей группы WG21 по стандартизации C++ в которой участвовали сотрудники Яндекса. На встрече «полировали» C++17, обсуждали Ranges, Coroutines, Reflections, контракты и многое другое.

Заседания, как обычно, занимали целый день + решено было сократить обеденный перерыв на полчаса, чтобы успеть побольше поработать над C++17.

Несмотря на то, что основное время было посвящено разбору недочётов черновика C++17, несколько интересных и свежих идей успели обсудить, и даже привнести в стандарт то, о чём нас просили на cpp-proposals@yandex-team.ru.
Подробности
Total votes 73: ↑72 and ↓1+71
Comments90

Последние новости о развитии C++

Reading time7 min
Views77K
Недавно в финском городе Оулу завершилась встреча международной рабочей группы WG21 по стандартизации C++, в которой впервые официально участвовали сотрудники Яндекса. На ней утвердили черновой вариант C++17 со множеством новых классов, методов и полезных нововведений языка.



Во время поездки мы обедали с Бьярне Строуструпом, катались в лифте с Гербом Саттером, жали руку Беману Дейвсу, выходили «подышать воздухом» с Винцентом Боте, обсуждали онлайн-игры с Гором Нишановым, были на приёме в мэрии Оулу и общались с мэром. А ещё мы вместе со всеми с 8:30 до 17:30 работали над новым стандартом C++, зачастую собираясь в 20:00, чтобы ещё четыре часика поработать и успеть добавить пару хороших вещей.

Теперь мы готовы поделиться с вами «вкусностями» нового стандарта. Всех желающих поглядеть на многопоточные алгоритмы, новые контейнеры, необычные возможности старых контейнеров, «синтаксический сахар» нового чудесного C++, прошу под кат.
Покажите мне чудеса!
Total votes 92: ↑86 and ↓6+80
Comments422

Сотрудники Яндекса будут представлять Россию в комитете по стандартизации C++

Reading time4 min
Views26K


Хочу поделиться с вами радостной новостью: теперь мы можем влиять на развитие C++! Под «мы» я имею в виду всех российских программистов, работающих с C++.

Но обо всем по порядку.
Читать дальше →
Total votes 73: ↑68 and ↓5+63
Comments128

Онлайн-компиляция на статическом сайте, рецепт для начинающих

Reading time6 min
Views28K

Вы несколько лет писали свой проект и теперь хотите привлечь пользователей? У меня есть простой, как холостяцкая яичница с беконом, рецепт специально для вас.

Для приготовления простого сайта вам понадобится:
  • репозиторий на GitHub — 1 штука
  • готовый html шаблон, для придания приятного вида — 1 штука
  • кусочек свежего компилирущегося C++ кода — минимум 1 строка кода
  • готовые javascript соусы из магазина — ~500Kb
  • картинки и анимашки по вкусу

Меняйте любые компоненты, экспериментируйте и готовьте свои сайты для любимого языка!
Приступить
Total votes 25: ↑22 and ↓3+19
Comments16

Администрирование глазами C++ программиста

Reading time5 min
Views57K
Продолжаем цикл пятничных статей "X глазами C++ программиста" (1, $$). В этот раз под катом вас ждут впечатления заядлого С++ программиста от мира администрирования. Боль, страдания, радости и прочие эмоции как всегда вынесены под спойлеры.

Надеюсь будет интересно профессиональным администраторам посмотреть на потуги С++ника, ну а С++ разработчикам узнать для себя что-то новое.
Показывай конфиги
Total votes 53: ↑38 and ↓15+23
Comments50

Web-технологии глазами С++ программиста

Reading time5 min
Views57K
Год назад знакомые попросили сделать меня сайт с динамическим контентом. Тогда о Web я знал чуть больше чем ничего, но попробовать было интересно.

Под катом впечатления заядлого С++ программиста от мира Web, собственные велосипеды, необычные решения, возмущения по поводу и без. Все эмоции вынесены в спойлеры, дабы не нагружать статью.

Надеюсь будет интересно Web разработчикам посмотреть на потуги С++ника, ну а С++ разработчикам узнать для себя что-то новое.

Что там у тебя...
Total votes 84: ↑63 and ↓21+42
Comments91

C++ трюки и советы из Boost на каждый день

Reading time3 min
Views42K

В недавнем посте хабровчане проголосовали за то, чтобы главы из книги были переведены на русский. Немного подумав я решил схитрить, и вместо перевода глав из открытого доступа, рассказать о том, что есть в закрытых.

Дабы не нарушать прав издательства, это будет не дословный перевод, а выжимка из тех техник, что могут показаться интересными даже людям не работающим с Boost.

Что вас ждёт под катом:

  • Избегаем вызовов макросов вместо функций, на примере max/min.
  • Вызываем оптимальную функцию, на примере std::swap и её специализации в разных пространствах имен.
  • Ускоряем вставку в std::vector.
  • Деструкторы в C++11.

Читать дальше →
Total votes 49: ↑40 and ↓9+31
Comments15

Пишем свою книгу

Reading time5 min
Views35K
imageВ данной статье я поделюсь информацией о том, как написать свою IT-книгу. Расскажу о подводных камнях, взаимодействии с издательским агентством, налоговой и банками. Процесс может немного варьироваться от издательства (и страны), но основные моменты не должны меняться.
Читать дальше →
Total votes 76: ↑74 and ↓2+72
Comments95

Спецификатор времени компиляции noexcept в C++11

Reading time5 min
Views68K
С новым стандартом С++ появилось множество интересных и полезных улучшений, одно из которых спецификатор времени компиляции noexcept, которой говорит компилятору о том, что функция не будет выбрасывать исключения. Если интересно, какие преимущества предоставляет этот спецификатор и не пугает код на С++ — добро пожаловать под кат.
Читать дальше →
Total votes 23: ↑23 and ↓0+23
Comments17
2

Information

Rating
1,205-th
Location
Россия
Works in
Registered
Activity