Найти в Дзене
C++

C++

С++ интересные моменты
подборка · 10 материалов
2 месяца назад
Перечисления (enum) в C++98–C++20
Перечисления (enumeration, enum) – это именованные наборы целочисленных констант. Другими словами, enum позволяет определить новый тип, значения которого ограничены перечисленным набором именованных констант, каждая из которых соответствует определенному числу. Например, вместо использования «магических чисел» 0, 1, 2 для кодирования, скажем, цветов, можно объявить перечисление: enum Color { RED, GREEN, BLUE }; Здесь Color – новый тип, а RED, GREEN, BLUE – перечислители (enum-элементы). По умолчанию...
2 месяца назад
Google Test сборка из исходников и установка как deb-пакет в Astra Linux 1.7.7.9
Есть несколько способов подключения библиотеку Google Test Рассмотрим способ с созданием DEB пакета. Соберем googletest из исходников и установим в систему, это позволит не зависеть от работы интернета, и работать с актуальной версией тестов, в любой момент ее можно будет пересобрать на более новую. создадим директорию и клонируем репозиторий $ mkdir ~/work-tmp $ cd ~/work-tmp $ git clone https://github.com/google/googletest.git далее проверим какие версии доступны $ git tag -l перейдем в ветку с нужной версией $ git checkout v1...
6 месяцев назад
C++ - неопределенное поведение при множественном изменении одной и той же переменной в выражении.
В с++ есть некоторое количество случаев когда, не определен точный порядок операций и в зависимости от реализации компилятора или стандарта можно получить разный результат. Рассмотрим простой пример: #include <iostream> int main() { int i = 1; printf("%d, %d\n", i++, i++); return 0; } Вопрос простой, что будет выведено в результате работы программы? printf является функцией, соответственно очередность выполнения выражений в аргументах не определена, можно получить результат: 1, 2 или 2, 1 и даже 1, 1 Этот эксперимент можно повторить на платформе https://godbolt...
7 месяцев назад
(GCC12.4) Astra Linux - Как обновить gcc до версии 12.4 - сборка из исходников.
Использование gcc12 полезно при работе с С++20 и библиотеками на нем. Сборка прошла успешно несколько раз на Astra Linux 1.7.7.9 Процесс достаточно длительный и занимает более часа на машине с шестью ядрами. для установки необходимо клонировать репозиторий git clone https://gitflic.ru/project/litvinov_mv/astra-linux-gcc12-4.git и запустить скрипт bash build_gcc_12.4.0.sh Сборка проходила на стандартной системе gcc (AstraLinux 8.3.0-6+b1) 8.3.0 GNU ld (GNU Binutils for AstraLinux) 2.31.1 В результате: будет создана папка по пути: ${HOME}/opt/gcc-12...
10 месяцев назад
Qt - где скачать исходники.
Существует несколько зеркал с которых можно скачать последние версии исходников: https://qt-mirror.dannhauer.de/ https://mirror.yandex.ru/mirrors/qt.io/ Полный список зеркал (просмотр списка через TOR): https://download.qt.io/static/mirrorlist/ Qt 5.15: https://qt-mirror.dannhauer.de/official_releases/qt/5.15/ Актуальная версия: 5.15.16 Qt 6.8: ...