Как стать автором
Обновить
67.79
Рейтинг

C++ *

Типизированный язык программирования

Сначала показывать
Порог рейтинга

Cling – не просто интерпретатор C++

Блог компании Издательский дом «Питер» Python *Программирование *C++ *API *
Перевод

В этом посте будут рассмотрены некоторые продвинутые варианты применения Cling, поддерживающие интероперабельность и расширяемость. Здесь мы постараемся продемонстрировать создание экземпляров по запросу; встраивание Cling как услуги, а также похвастаемся расширением, обеспечивающим автоматическое дифференцирование на лету.

Читать далее
Всего голосов 8: ↑5 и ↓3 +2
Просмотры 1.9K
Комментарии 1

Новости

Эмоциональный код

Блог компании OTUS Программирование *C++ *
Перевод

Я зарабатываю программированием с 1979 года, и большую часть этого времени мне приходится работать с чужим кодом. Поначалу было: "Добавьте эту маленькую функцию к тому, что у нас уже есть". Теперь — "как мы можем стать лучше" и " стоит ли сохранять данный код?". Прочтение кода всегда было огромной составляющей в моей работе, и по этой причине для меня очень важно, какой код пишу я (и люди, с которыми работаю). Конечно, хочется, чтобы он был быстрым — в конце концов, я программист на C++. Кроме того, он должен быть корректным. Но есть нечто большее, помимо этих двух вещей: я хочу, чтобы код был читабельным, понятным, разумным и даже приятным.

Читать далее
Всего голосов 9: ↑6 и ↓3 +3
Просмотры 3.8K
Комментарии 5

Что там у PVS-Studio c покрытием Toyota ITC Benchmark?

Блог компании PVS-Studio Информационная безопасность *C++ *C *

Toyota ITC Benchmark – это набор синтетических тестов для C и C++, состоящий приблизительно из 650 примеров и предназначенный для тестирования анализаторов кода. Данная статья ответит на вопрос: "Насколько хорошо статический анализатор PVS-Studio покрывает Toyota ITC Benchmark?".

Читать далее
Всего голосов 12: ↑11 и ↓1 +10
Просмотры 1.7K
Комментарии 3

Удивительное приключение в стране оптимизирующих компиляторов

Python *Программирование *C++ *Lisp *C *

Приглашаю вас в небольшое приключение выходного дня, в котором никто никому ничего не будет доказывать. Мы просто будем реализовывать один и тот же несложный алгоритм, разыскивающий простые числа в некотором диапазоне, на нескольких языках программирования: C, C++, Scheme и Python - и смотреть, что этим кодом могут сделать современные оптимизирующие компиляторы. В процессе приключения мы увидим, что «динамический» не означает «совсем уж медленный», и посмотрим на приёмы программирования на Scheme, что, как мне кажется, можно сравнить с путешествием на экзотический остров.

Читать далее
Всего голосов 62: ↑60 и ↓2 +58
Просмотры 19K
Комментарии 75

Реализуем подобие DMA на микроконтроллерах AVR

C++ *Программирование микроконтроллеров *
Из песочницы

Всем привет. Довелось мне писать довольно большой проект на AVRках. Как известно у них не очень большие скорости 16 МГц, у тех же STM32 можно гнать 72МГц и выше. Но опыта на STM мало, по этому пока AVR. Так вот мне нужно было в проекте передавать данный по UART, посылки не большие 10-15 байт, скорость 9600. Если все это дело реализовать в основном цикле, то это очень сильно тормозит систему. А у меня помимо этого есть еще куча других задач. Единственный выход использовать прерывания. Посмотрел несколько примеров в интернете, некоторые из них сложные, другие я даже не понял как работают, и по итогу сделал как понимал, и теперь делюсь с вами.

И так в первую очередь нам необходимо сформировать то что хотим отправить, то есть получить буфер для отправки, не важно как sprintf или itoa. Допустим определим буфер:

Читать далее
Всего голосов 18: ↑9 и ↓9 0
Просмотры 5.1K
Комментарии 28

Динамические структуры в shared-памяти

Программирование *C++ *Системное программирование *NoSQL *

Приветствую, читатель! Хотелось бы осветить свою небольшую библиотеку для C++, которая призвана помочь Вам создавать динамические структуры в shared-памяти. Далее - под катом.

Читать далее
Всего голосов 5: ↑2 и ↓3 -1
Просмотры 3.5K
Комментарии 27

Работа в Highload командах 1С сейчас: Java/С++/ C#/TS/JS  Hiring day

Блог компании 1С JavaScript *Java *C++ *C# *

Вечером 30 марта 2022 года (среда) в формате онлайн мы проводим Java/С++/ C#/TS/JS  Hiring day.

Приглашаем всех заинтересованных в разработке на Java, С++, C#, JS,  TS принять участие!

На митапе в течение часа мы расскажем:

О разработке различных механизмов платформы корпоративных и облачных приложений, их внутреннем устройстве и принципах работы

Опыте разработки highload-решений, которые ежедневно используют миллионы людей

Читать далее
Всего голосов 9: ↑6 и ↓3 +3
Просмотры 4.2K
Комментарии 10

Обнаружение наличия функциональности в C++ на этапе компиляции

Программирование *C++ *

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

Хорошо, если есть поддержка концептов или рефлексии. А что делать, если их ещё нет, или они не в полной мере поддерживаются?

В этой статье хотелось бы кратко рассмотреть особенности применения известного механизма обнаружения наличия функциональности у используемых типов данных на этапе компиляции.

Читать далее
Всего голосов 12: ↑11 и ↓1 +10
Просмотры 2.4K
Комментарии 6

Как начать писать программный код Си в ОС Linux (Руководство для совсем начинающих)

C++ *Системное программирование **nix *C *Разработка под Linux *
Из песочницы

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

Читать далее
Всего голосов 25: ↑17 и ↓8 +9
Просмотры 23K
Комментарии 37

C/C++ из Python (ctypes) на Android

Python *C++ *Разработка под Android *C *
Tutorial
main

Ранее я писал статью C/C++ из Python (ctypes), в ней описывается процесс запуска на Linux. На этот раз мне понадобилось повторить это уже на Android. В этой статье речь пойдет о сборке, необходимых инструментах, механизмах отладки и установки.

Читать дальше →
Всего голосов 3: ↑3 и ↓0 +3
Просмотры 3.6K
Комментарии 2

Кто такой Thread Pool и как его написать своими руками на С++

C++ *Алгоритмы *
Из песочницы

Thread Pool достаточно популярный паттерн в программировании, с которым рано или поздно сталкивается каждый первый программист. Если вы новичок и не хотите бездумно пользоваться пулом потоков, то эта статья поможет вам разобраться с его устройством и написать наивные реализации с использованием С++ 14 и С++ 17. Так же статья будет полезна всем, кто изучил теорию по многопоточности, но не знает как можно применить свои знания.

Читать далее
Всего голосов 8: ↑4 и ↓4 0
Просмотры 9.3K
Комментарии 8

Спортивное программирование: не все так просто, как кажется

Спортивное программирование *C++ *Алгоритмы *
Из песочницы

Меня зовут Абай Баймуканов, я – разработчик-алгоритмист международной IT-компании Relog. Уже несколько лет увлекаюсь олимпиадными программированием, поэтому в этой статье хотел бы поделиться своим видением по этому поводу.

Быть олимпиадником по спортивному программированию довольно весело и интересно. Но быть жюри и составителем задач для самих олимпиад – достаточно ответственное и не менее интересное дело. Спортивное программирование - это те же математические задачки на логику, которые всего то нужно решить. Но программирование, в отличие от любого другого предмета, уникально тем, что решение нужно еще и реализовать в виде компьютерной программы.

Здесь есть свой нюанс: программа может работать настолько долго, сколько не существует даже вселенная, а может сработать за долю секунды. Причем в обоих случаях результат будет один и тот же. Любой олимпиадник стремится к тому, чтобы его программа была как можно эффективнее. Для этого существуют алгоритмы и структуры данных - методы, позволяющие сделать определенные программы более эффективными с точки зрения необходимого времени или памяти компьютера.

Спектр сложности у задач по спортивному программированию достаточно широкий: от задач для новичков до задач мирового уровня для вундеркиндов. Большинство соревнований проводится практически одном и том же формате, то есть дается несколько задач, на их решение 5 часов и за это время нужно решить как можно больше.

На школьных олимпиадах обычно за каждую задачу можно получить от 0 до 100 баллов и общим результатом будет суммарный балл за все задачи, у студентов в результат идет просто количество решенных задач, а если есть участники, решившие одно и то же количество задач, то они группируют по убыванию штрафа. Чем дольше решаешь задачу или чем больше на них нужно попыток решить, тем больше штрафов за нее получишь.

Читать далее
Всего голосов 18: ↑11 и ↓7 +4
Просмотры 7.5K
Комментарии 21

Моделирование упаковки с использованием API SolidWorks

Блог компании Специальный Технологический Центр C++ *API *CAD/CAM *
Tutorial
Одна из задач, встречающаяся при разработке новых изделий – это задача компоновки их упаковки.

image

В качестве иллюстрации этого утверждения приведем пример, в котором с такой задачей столкнулись даже IT-специалисты. Как раз на момент написания этой статьи программисты одного из подразделений ООО «Специальный технологический центр» занимались подбором комплектующих для комплекса радиоэлектронной аппаратуры, в состав которого входили серверы и автоматизированные рабочие места. Мне как конструктору в этот момент пришлось принять участие в выборе тары для укладки ЗИП (первое изображение под катом). Как могут решаться подобного рода задачи – см. далее.
Читать дальше →
Всего голосов 4: ↑4 и ↓0 +4
Просмотры 2.2K
Комментарии 2

Скрытые друзья в плюсах

C++ *

Как известно, ключевое слово friend в C++ используется для предоставления доступа к закрытым членам класса внешним функциям и классам. Помимо этого, friend наделена еще одной фишкой, о которой знают далеко не все. В этой статье речь пойдет о hidden friends. Желающих разобраться в сабже, прошу под кат.

Читать далее
Всего голосов 14: ↑13 и ↓1 +12
Просмотры 6.1K
Комментарии 13

Обобщенное программирование – обзор реализаций

Блог компании Издательский дом «Питер» Программирование *Java *C++ *C# *
Перевод

В большинстве сильно типизированных языков поддерживается обобщенное программирование. Круг проблем, которые решаются на этих языках, один и тот же, но сами проблемы решались в разное время разными способами, и у каждого из этих способов были свои «за» и «против». Мы рассмотрим историю реализаций обобщенного программирования, чтобы вы могли распробовать его как инженер. Наилучшего подхода не существует, любой подход – это всегда компромисс, при котором одними преимуществами жертвуют ради других. Мы рассмотрим три популярных языка, обогативших нашу индустрию новыми подходами: C++, Java, C#(.Net). Для каждого из рассматриваемых языков мы ответим на следующие вопросы:

Читать далее
Всего голосов 20: ↑18 и ↓2 +16
Просмотры 5.5K
Комментарии 5

Шаблоны C++: как итерировать по std::tuple — std::apply и еще пара приемов

Блог компании OTUS Программирование *C++ *
Перевод

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

Сегодня мы пойдем немного дальше и рассмотрим другие техники. Первая — с применением std::apply из C++17, вспомогательной функции для кортежей. В этой статье также будут рассмотрены некоторые стратегии, позволяющие сделать итерацию более универсальной и обрабатывать кастомные callable-объекты, а не только выводить их в консоль.

Читать далее
Всего голосов 9: ↑9 и ↓0 +9
Просмотры 2.6K
Комментарии 0

Простая программная генерация видео и картинок без стороннего API

Python *Программирование *C++ *C *Компьютерная анимация *
Tutorial

В этой статье я покажу простой способ генерации видео программами на Python и C/C++ без использования стороннего API. Вам так же потребуется ffmpeg, без него вы не сможете конвертировать файлы в читаемые форматы!

Читать далее
Всего голосов 13: ↑12 и ↓1 +11
Просмотры 3.1K
Комментарии 3

Проверка фреймворка Ogre3D статическим анализатором PVS-Studio

Блог компании PVS-Studio C++ *Разработка игр *

Обычные пользователи любят графические движки, потому что с ними удобно работать. Команда PVS-Studio любит графические движки, потому что там часто попадаются интересные фрагменты кода. По просьбе одного из читателей нашего блога в этой статье будут рассмотрены результаты анализа графического фреймворка Ogre3D. Каждому по интересному срабатыванию из проекта, и пусть никто не уйдёт обиженным!

Читать далее
Всего голосов 8: ↑6 и ↓2 +4
Просмотры 1.7K
Комментарии 0

Самодельный измеритель крена и дифферента корабля

C++ *Программирование микроконтроллеров *Производство и разработка электроники *DIY или Сделай сам Электроника для начинающих
Tutorial


Одним из приборов, необходимых на различных судах, является кренометр-дифферентометр. Нужен он для того, чтобы знать, как именно качается судно, и не пора ли что-то предпринять для уменьшения этой качки (ну или сделать вовремя ноги с корабля, уподобившись корабельной крысе). Разработка таких устройств довольно редкая задача, но я с ней всё-таки столкнулся, и решил попробовать сделать свою реализацию прототипа такого кренодифферентометра. Под катом я предложу вам вариант изготовления такого электронного кренометра-дифферентометра, как я сейчас вижу его возможную реализацию.
Читать дальше →
Всего голосов 16: ↑15 и ↓1 +14
Просмотры 5.8K
Комментарии 23

Шаблоны C++: как итерировать по std::tuple — основы

Блог компании OTUS C++ *
Перевод

Для большинства стандартных контейнеров перебор элементов можно осуществлять просто с помощью цикла for с диапазоном прямо во время выполнения. Но что насчет кортежей (std::tuple)? В этом случае мы не можем использовать обычный цикл, так как он не «понимает» список аргументов кортежа во время компиляции. В этой статье я покажу вам несколько приемов, которые вы можете использовать для итерации по элементам кортежа.

Читать далее
Всего голосов 16: ↑15 и ↓1 +14
Просмотры 3.6K
Комментарии 0

Вклад авторов

Работа

QT разработчик
9 вакансий
Программист C++
104 вакансии