Публикации по теме 'cpp17'


Потрясающие функции стандарта C++ : std::span и std::string_view.
Я просматривал интересную лекцию Андреаса Фертига на YouTube на основе C++ Templates. В одном из разделов он упомянул std::span, и мне было очень интересно понять/узнать об этом больше. cppreference описывает span как объект, который может принимать непрерывную последовательность объектов в памяти с первым элементом последовательности, равным 0 . Другими словами, span  — это представление, не являющееся владельцем непрерывной последовательности объектов, таких как массивы в..

Реализация сигнального слота — Часть 1
Как продолжение части этого поста , это реализация механизма сигнальных слотов в C++. В предыдущем посте я попытался объяснить, что такое механизм signal-slot. Вы можете уведомить о том, что событие произошло с некоторыми данными. При использовании шаблона наблюдателя с обратными вызовами вы передаете указатель на функцию, но это не типобезопасный вариант. Итак, мы хотим сделать этот вариант типобезопасным. На данный момент я просто определю интерфейс этих классов и буду продолжать..

Включение библиотек только заголовков со встроенными переменными
Хотя в C++ всегда можно было объявить отдельные функции встроенными, C++17 дополнительно позволяет нам объявлять переменные встроенными. Это значительно упрощает реализацию библиотек только для заголовков, что раньше было возможно только с помощью обходных путей. Давайте создадим пример класса, который может подойти в качестве члена типичной библиотеки только для заголовков. Цель состоит в том, чтобы дать ему статический член и создать его экземпляр глобально доступным способом с..

Метапрограммирование шаблонов и constexpr в учебнике по C++ 17, часть 1
Примечание. Эта статья не для новичков в C++, но вы все равно можете попробовать! Как программисты C++, мы знаем, что шаблоны — это мощный инструмент для создания универсального кода. Они позволяют нам писать функции и классы, которые могут работать с любым типом, если этот тип соответствует определенным требованиям. Но шаблоны — это не просто инструмент для создания универсального кода. Они также являются мощным инструментом для создания оптимизированного кода, который вычисляет..

Еще одна претензия к std::string_view
Уже было изрядное количество обреченных на std::string_view . Это опасно по своей сути, и люди правы, когда делают паузу. Я думаю, что правильно рассматривать его как инструмент для оптимизации, и это связано с существенной и вечной оговоркой, которую Дональд Кнут сформулировал так: Настоящая проблема заключается в том, что программисты тратят слишком много времени на беспокойство об эффективности не в том месте и не в то время; преждевременная оптимизация — корень всех зол (или, по..

«Пришествие кода» — «Идеально сферические дома в вакууме» — «Головоломка 3»
Привет ! Меня зовут Ксавье Жувено, и вот третья часть длинной серии о Пришествии кода . Предыдущую часть можно найти здесь В этом новом посте мы собираемся решить вторую задачу от 3 декабря 2015 года под названием «Идеально сферические дома в вакууме». Решение я предложу на C++, но рассуждения можно применить и к другим языкам. Часть 1 Проблема Полную версию этой проблемы можно найти непосредственно на сайте Пришествие кода , здесь я опишу лишь суть проблемы: Санта доставляет..

Курс Udemy: изучите профессиональный C++ | Введение в библиотеки Boost C++
Курс по C++ выпущен на платформе Udemy. Название курса : “Learn Professional C++ | Введение в библиотеки Boost C++ » Этот курс рассчитан на следующую аудиторию: программисты начинающего уровня, Начинающие разработчики C++. Разработайте основы C++ для Блокчейн EOS . хотите писать коды С++ с эффективным использованием памяти, используя нестандартную библиотеку хотите использовать библиотеку Boost C++ . хотите сменить карьеру программиста с Python на C++ , чтобы писать..