Рубрика «c++» - 103

От переводчика:

Переводы статьи про неопределённое поведение в языке C от Криса Латтнера, одного из ведущих разработчиков проекта LLVM, вызвали большой интерес, и даже некоторое непонимание со стороны тех, кто не встречался с описываемыми явлениями на практике. В своей статье Крис даёт ссылку на блог Джона Реджера, и на его статью от 2010 года, посвящённую UB в C и C++. Но в блоге Реджера есть и гораздо более новые статьи на эту тему (что не отменяет ценность старых, однако).

Я хочу предложить вашему вниманию свежую статью «Undefined Behavior in 2017». Статья в оригинале имеет очень большой объём, и я разбил её на части.

В первой части речь пойдёт о разных инструментах поиска UB: ASan, UBSan, TSan и т.д.
ASan — Address Sanitizer от компании Google, разработанный на основе LLVM.
UBSan — Undefined Behavior Sanitizer, предназначен для обнаружения различных UB в программах на C и C++, доступен для Clang и GCC.
TSan — Thread Sanitizer, предназначен для обнаружения UB в многопоточных программах.
Если вам эта тема покажется далёкой от практики, я рекомендую дождаться продолжения, потому что в конце вас ждёт поистине огромный список UB языка С++ (их должно быть около 200!)
И я рекомендую прочитать также старые статьи Реджера, они не утратили актуальности.
Об авторе: Джон Реджер является профессором Computer Science в университете штата Юта в США.

Мы часто слышим, что некоторые люди утверждают, что проблемы, вытекающие из неопределённого поведения (UB) в C и C++ в основном решены путём широкого распространения инструментов динамической проверки, таких, как ASan, UBSan, MSan и TSan. Мы здесь покажем очевидное: несмотря на то, что в последние годы произошло множество прекрасных улучшений в этих инструментах, проблемы UB далеки от разрешения, и рассмотрим ситуацию в деталях.

UB-2017. Часть 1 - 1
Читать полностью »

Введение

В марте 2015 года Epic Games повернулась лицом к Open Source сообществу, предоставив бесплатный доступ к своему движку Unreal Engine версии 4 (установив лимит на прибыль от использования движка в 3000$ за квартал). Более того, еще в 2014 году компания говорила о том, что поддержка свободных операционных систем, в частности Linux, является для неё одной из приоритетных задач.

Unreal Engine: QuickStart в Qt Creator под Arch Linux - 1

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

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

Читать полностью »

Бестиарий С++. Справочник по загадочным персонажам - 1

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

Читать полностью »

Привет, я студент второго курса технического университета. После пропуска нескольких пар программирования по состоянию здоровья, я столкнулся с непониманием таких тем, как «Стек» и «Очередь». Путем проб и ошибок, спустя несколько дней, до меня наконец дошло, что это такое и с чем это едят. Чтобы у вас понимание не заняло столько времени, в данной статье я расскажу о том что такое «Стек», каким образом и на каких примерах я понял что это такое.Читать полностью »

Каждый язык программирования имеет свою сферу применения. Однако некоторые из них используются чаще других. Мы задались вопросом, какой язык программирования наиболее популярен. Для этого мы проанализировали статистику нескольких IT-платформ: GitHub, Stack Overflow, HN, Хабрахабр и др.

Какие языки программирования самые популярные: статистика ИТ-платформ - 1Читать полностью »

в 18:37, , рубрики: c++, встречи

Всем привет!

Давно не писал про встречи сообщества на Хабре. А встречи проходят регулярно. Пора исправить это недоразумение и рассказать что было, что будет, позолоти ручку. Если кому-то лень ходить под кат, то новости одной строкой: встреча в Москве 6 ноября, встреча в Нижнем Новгороде 9 декабря, C++ Russia весной 2018, C++ Siberia зимой 2018 (2019?).
Читать полностью »

RandLib. Библиотека вероятностных распределений на C++17 - 1

Библиотека RandLib позволяет работать с более чем 50 известными распределениями, непрерывными, дискретными, двумерными, циклическими и даже одним сингулярным. Если нужно какое-нибудь распределение, то вводим его имя и добавляем суффикс Rand. Заинтересовались?
Читать полностью »

«Иногда приходится заглядывать в код Spark»: Александр Морозов (SEMrush) об использовании Scala, Spark и ClickHouse - 1

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

Мы узнали, что в одном из проектов используют Scala, C++, Spark и ClickHouse. Выбор Scala сам по себе нестандартный, сочетание с C++ можно встретить ещё реже, СУБД ClickHouse от Яндекса тоже не самый распространённый выбор — поэтому мы решили задать несколько вопросов о том, как со всем этим живётся. На них нам ответил Александр Морозов.
Читать полностью »

Ключевое слово mutable относится к малоизвестным уголкам языка С++. В то же время оно может быть очень полезным, или даже необходимым в случае, если вы хотите строго придерживаться const-корректности вашего кода или писать лямбда-функции, способные изменять своё состояние.

Пару дней назад Eric Smolikowski написал в своём твиттере:
«Я часто спрашиваю программистов на собеседовании насколько хорошо (по 10-бальной шкале) они знают С++. Обычно они отвечают 8 или 9. И тогда я спрашиваю что такое „mutable“. Они не знают. :)»

Впечатления от таких вопросов и ответов у меня двоякие. С одной стороны, задавать подобные вопросы на собеседовании — дело бесполезное, это почти ничего не говорит о способностях интервьюируемого. Но, с другой стороны, ключевое слово mutable незаслуженно забыто многими программистами, а ведь оно может быть очень полезным в некоторых сценариях.
Читать полностью »

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

Почему название "Broo"?

image

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js