c++11

  • Хабрахабр

    [Перевод] Лямбды: от C++11 до C++20. Часть 1

    Добрый день, друзья. Сегодня мы подготовили для вас перевод первой части статьи «Лямбды: от C++11 до C++20». Публикация данного материала приурочена к запуску курса «Разработчик C++», который стартует уже завтра. В этой статье мы пройдемся по их истории и посмотрим на эволюцию этой важной части современного C++. Лямбда-выражения являются одним из наиболее мощных дополнений в C++11 и продолжают развиваться с…

    Подробнее »
  • Хабрахабр

    Вред макросов для C++ кода

    Язык C++ открывает обширные возможности для того, чтобы обходиться без макросов. Так давайте попробуем использовать макросы как можно реже! Например, когда речь заходит о ручной генерации однотипного кода, я могу признать пользу от макросов и смириться с ними. Сразу оговорюсь, что я не являюсь фанатиком и не призываю отказываться от макросов из идеалистических соображений. Нет смысла воевать с чем-то вроде…

    Подробнее »
  • Хабрахабр

    Реализация горячей перезагрузки С++ кода в Linux и macOS: копаем глубже

    Для понимания того, что происходит, и кто все эти люди, рекомендую прочитать предыдущую статью. *Ссылка на библиотеку и демо видео в конце статьи. "Код" в данном случае — это функции, данные и их согласованная работа друг с другом. В прошлой статье мы ознакомились с подходом, позволяющим осуществлять "горячую" перезагрузку c++ кода. Проблема возникает с данными (статическими и глобальными переменными), а…

    Подробнее »
  • Хабрахабр

    [Из песочницы] Реализация горячей перезагрузки С++ кода в Linux

    В самой статье изложены механизмы, реализованные в библиотеке, со средней детализацией. * Ссылка на библиотеку в конце статьи. Здесь в основном рассматривается реализация для Linux. Реализация для macOS еще не закончена, но она мало чем отличается от реализации для Linux. Сам я слез с windows несколько лет назад, ни капли не пожалел, и сейчас все программирование происходит либо на Linux…

    Подробнее »
  • Хабрахабр

    [Перевод] Современный C++ != (Самый)Новый Стандарт

    Здесь «новый» может означать что угодно от C++11 до C++17, или даже то, что уже сейчас доступно из C++20. Термин «современный C++» часто используется как синоним выражения «код, использующий новый стандарт C++». Я думаю, что современный C++ — это нечто большее, не ограничивающееся добавлением флага -std=c++17. Что значит «современный»? Если поискать значение слова «современный» в сети, одним из первых мы…

    Подробнее »
  • Хабрахабр

    [Из песочницы] Портирование COM на Linux

    Мне нравится технология COM. Но речь пойдет не о технологии, восхвалении или недостатках COM, а опыте переноса и реализации на Linux. Велосипед? Целесообразность? Давайте не будем на этом заострять внимание. COM-объект (1) Реализация объекта в основном скрывается в динамически подключаемой библиотеке, называемой COM-сервер(2), для использования публикуются и распространяются интерфейсы. В общем понимании, объект класса, реализующий как минимум один COM-интерфейс. Выделяется…

    Подробнее »
  • Хабрахабр

    [Перевод] Указатели в C абстрактнее, чем может показаться

    Указатель ссылается на ячейку памяти, а разыменовать указатель — значит считать значение указываемой ячейки. Значением самого указателя является адрес ячейки памяти. Стандарт языка C не оговаривает форму представления адресов памяти. Это очень важное замечание, поскольку разные архитектуры могут использовать разные модели адресации. Большинство современных архитектур использует линейное адресное пространство или аналогичное ему. Однако даже этот вопрос не оговаривается строго, поскольку…

    Подробнее »
  • Хабрахабр

    Как я стандартную библиотеку C++11 писал или почему boost такой страшный. Глава 4.2

    Краткое содержание предыдущих частей Из-за ограничений на возможность использовать компиляторы C++ 11 и от безальтернативности boost'у возникло желание написать свою реализацию стандартной библиотеки C++ 11 поверх поставляемой с компилятором библиотеки C++ 98 / C++ 03. Включена своя реализация nullptr, которая подбирается на этапе компиляции. Были реализованы static_assert, noexcept, countof, а так же, после рассмотрения всех нестандартных дефайнов и особенностей компиляторов,…

    Подробнее »
  • Хабрахабр

    Как я стандартную библиотеку C++11 писал или почему boost такой страшный. Глава 3

    Краткое содержание предыдущих частей Из-за ограничений на возможность использовать компиляторы C++ 11 и от безальтернативности boost'у возникло желание написать свою реализацию стандартной библиотеки C++ 11 поверх поставляемой с компилятором библиотеки C++ 98 / C++ 03. На этом описание core.h почти закончено, но оно было бы не полным без nullptr. Были реализованы static_assert, noexcept, countof, а так же, после рассмотрения всех…

    Подробнее »
  • Хабрахабр

    Как я стандартную библиотеку C++11 писал или почему boost такой страшный. Глава 2

    Краткое содержание предыдущих частей Из-за ограничений на возможность использовать компиляторы C++ 11 и от безальтернативности boost'у возникло желание написать свою реализацию стандартной библиотеки C++ 11 поверх поставляемой с компилятором библиотеки C++ 98 / C++ 03. Помимо стандартных заголовочных файлов type_traits, thread, mutex, chrono так же были добавлены nullptr.h реализующий std::nullptr_t и core.h куда были вынесены макросы, относящиеся к компиляторозависимому функционалу,…

    Подробнее »


Кнопка «Наверх»
Закрыть