Главная » Архив меток: clang

Архив меток: clang

CLion 2018.3: удаленная разработка, профилирование кода, быстродействие и не только

Привет, Хабр! 3. На днях мы выпустили CLion 2018. Третий в этом году крупный релиз подытоживает нашу работу по двум важным направлениям развития — улучшению языковой поддержки и удаленной разработке. Кроме того, мы, наконец: добавили средства профилирования кода; переделали команды в редакторе для сборки/пересборки кода на уровне одного файла, нескольких таргетов или всего проекта целиком; вместе с другими IDE на ...

Читать далее »

[Из песочницы] C++: сеанс спонтанной археологии и почему не стоит использовать вариативные функции в стиле C

Началось все, как водится, с ошибки. Я первый раз работал с Java Native Interface и делал в C++ части обертку над функцией, создающей Java объект. Эта функция — CallVoidMethod — вариативна, т.е. помимо указателя на среду JNI, указателя на тип создаваемого объекта и идентификатора вызываемого метода (в данном случае конструктора), она принимает произвольное число других аргументов. Что логично, т.к. эти ...

Читать далее »

Как мы перевели 10 миллионов строк кода C++ на стандарт C++14 (а потом и на C++17)

Некоторое время назад (осенью 2016), при разработке очередной версии технологической платформы 1С:Предприятие внутри команды разработки встал вопрос о поддержке нового стандарта C++14 в нашем коде. Переход на новый стандарт, как мы предполагали, позволил бы нам писать многие вещи элегантней, проще и надежней, упрощал поддержку и сопровождение кода. И в переводе вроде бы нет ничего экстраординарного, если бы не масштабы кодовой ...

Читать далее »

clang и IDE: история о дружбе и недружбе

Чей проект — не спрашивайте, не расскажу. Для меня это началось шесть с половиной лет назад, когда волею судеб меня затянуло в один закрытый проект. Ну, как это недавно сделали в QtCreator, в CLion (в некотором смысле), и т. Скажу лишь, что идея его была проста как грабли: встроить clang front-end в IDE. Clang тогда был восходящей звездой, многие тащились ...

Читать далее »

[Перевод] Clang. Часть 1: введение

Что такое Clang? Я провёл последние несколько месяцев, работая с Clang, фронтендом LLVM. Clang умеет парсить и анализировать любой исходный код на языках семейства С (C, C++, ObjectiveC, и т.п....) и имеет удивительную модульную структуру, которая делает его простым в использовании. Если вы ищете статический анализатор кода, я настоятельно рекомендую Clang, он существенно превосходит другие статические анализаторы (такие, как CIL...) ...

Читать далее »

Особенности вызова функций в С++

В результате возникла данная статья. Не так давно у меня произошёл очередной разговор с коллегой на извечную тему: "по ссылке, или по значению". Далее будут рассмотрены: В ней я хочу изложить результаты моего исследования по этой и смежным темам. Регистры и их назначение при вызове функций. Передача и возврат простых типов и структур. Как передача по ссылке и по значению ...

Читать далее »

[Перевод] Уроки, которые можно извлечь из кодовой базы LLVM/Clang

От переводчика: в статье, которую я предлагаю вашему вниманию, авторы исследовали кодовую базу LLVM/Clang с помощью инструмента анализа кода CppDepend, позволяющего вычислять различные метрики кода и анализировать большие проекты с целью улучшения качества кода. Время доказало, что Clang является таким же зрелым компилятором C и C++, как GCC и компилятор от Microsoft, но то, что делает его особенным, это то, ...

Читать далее »