Шесть лет назад, в июне 2016-го года, вышла первая статья об инструменте, с разработкой которого я связан уже много лет. Шестилетней давности публикация дала толчок интереса к SObjectizer-у и, как я понимаю, кто-то сумел попробовать этот инструмент в деле (или собрался попробовать) именно благодаря той статье. Поскольку за прошедшее время SObjectizer несколько изменился, то я подумал, что не помешало бы выпустить обновленную версию статьи. Исправленную и дополненную. С учетом не только того, что изменилось/появилось/исчезло, но и отталкиваясь от критических отзывов на предыдущие обзорные статьи.
Рубрика «c++17» - 2
SObjectizer: что это, для чего это и почему это выглядит именно так? Взгляд из 2022-го
2022-06-15 в 8:34, admin, рубрики: actor model, c++, c++17, concurrency, multithreading, open source, sobjectizer, ПрограммированиеЗадачка о функции-обертке, принимающей аргументы в произвольном порядке, и ее решение на C++17
2021-12-04 в 16:45, admin, рубрики: c++, c++17, ненормальное программированиеНедавно на Хабре проскакивала новость о Magnit Tech++ Meet Up, и в ней упоминалась задачка, которая меня заинтересовала. В оригинале задачка формулируется так:
Определена функция с сигнатурой:
void do_something(bool a, int b, std::string_view c)
Определить функцию, принимающую в произвольном порядке аргументы типов
bool
,int
,std::string_view
и вызывающую функциюdo_something
с переданными параметрами в качестве аргументов.
C++17. Функция стандартной библиотеки std::launder и задача девиртуализации
2021-02-05 в 8:27, admin, рубрики: c++, c++17, C++20, devirtualization, just for fun, launder, LLVM, llvm ir, ПрограммированиеВ этой статье мы попробуем разобраться с одним из самых неоднозначных и непонятных нововведений стандарта C++17 — функцией стандартной библиотеки std::launder. Мы посмотрим на std::launder с другой стороны, посмотрим на источник. Разберем что лежит в основе функции на примере решения задачи девиртуализации и реализации виртуальных указателей в LLVM.
Гетерогенный поиск в ассоциативных контейнерах на C++
2020-10-15 в 21:15, admin, рубрики: c++, C++14, c++17, C++20Ассоциативные контейнеры в C++ работают с конкретным типом ключа. Для поиска в них по ключу подобного типа (std::string, std::string_view, const char*) мы можем нести существенные потери в производительности. В этой статье я расскажу как этого избежать с помощью относительно недавно добавленной возможности гетерогенного поиска.
Под капотом сортировок в STL
2020-10-08 в 13:23, admin, рубрики: algorithms, c++, c++11, C++14, c++17, sorting, Алгоритмы, Блог компании Mail.Ru Group, ПрограммированиеСтандарт С++ почти никогда не указывает, как именно должен быть реализован тот или иной std алгоритм. Дается только описание того, что на входе, что на выходе и асимптотические ограничения по времени работы и памяти. В статье я постарался прикинуть, какие математические алгоритмы и структуры данных имели ввиду авторы стандарта, указывая ограничения для той или иной сортировки и для некоторых других алгоритмов. А так же как эти алгоритмы реализованы на практике.
При написании статьи я использовал стандарт C++17. В качестве реализаций рассматривал GCC 10.1.0 (май 2020) и LLVM/Clang 10.0.0 (март 2020). В каждой и них есть своя реализация STL, а значит и std алгоритмов.
Boost.Compute или параллельные вычисления на GPU-CPU. Часть 1
2020-08-15 в 13:26, admin, рубрики: boost::compute, c++, c++17Привет!
По моим меркам я уже достаточно давно пишу код на C++, но до этого времени ещё не сталкивался с задачами, связанными с параллельными вычислениями. Я не увидел ни одной статьи о библиотеке Boost.Compute, поэтому эта статья будет именно о ней.
Содержание
- Что такое boost.compute
- Проблемы с подключением boost.compute к проекту
- Введение в boost.compute
- Основные классы compute
- Приступаем к работе
- Заключение
Все, что вы должны знать о std::any
2020-05-24 в 11:09, admin, рубрики: Any, c++, c++17, stl, STL containers, перевод, Программирование, системное программированиеПривет! Представляем вашему вниманию перевод статьи «Everything You Need to Know About std::any from C++17» автора Bartlomiej Filipek.
С помощью std::optional
вы можете хранить один какой-то тип. С помощью std::variant
вы можете хранить несколько типов в одном объекте. И С++17 предоставляет нам еще один такой оберточный тип — std::any
, который может хранить что угодно, оставаясь при этом типобезопасным.
Читать полностью »
Глубина кроличьей норы или собеседование по C++ в компании PVS-Studio
2020-04-03 в 14:30, admin, рубрики: c++, c++17, Блог компании PVS-Studio, Карьера в IT-индустрии, собеседования
Авторы: Андрей Карпов, khandeliants Филипп Хандельянц.
Хочется поделиться интересной ситуацией, когда вопрос, используемый нами на собеседовании, оказался сложнее, чем задумывал его автор. С языком C++ и компиляторами надо всегда быть начеку. Не заскучаешь.
Читать полностью »