Добавьте в корневую директорию репозитория файл real48.cpp.
Отредактируйте файл real48.hpp.
Требования к программе возьмите из документа с домашним заданием.
Для сборки проекта выполните:
cmake -B build/
cmake --build build/ -j $(nproc)Для тестирования проекта используются следующие зависимости:
-
GoogleTest — библиотека/фреймворк для написания юнит-тестов для C/C++.
-
libFuzzer — часть тулчейна LLVM для написания фаззинг-тестов.
GoogleTest можно установить стандартным пакетным менеджером операционной системы. libFuzzer устанавливается вместе с тулчейном LLVM. Для его использования достаточно установить Clang как компилятор для C/C++ по-умолчанию. Если текущий компилятор — не Clang, то будут собраны только юнит-тесты, сборка фаззинг-тестов пропускается.
Note
Необязательный раздел
Есть возможность установить зависимости выше при помощи пакетного менеджера Nix. Преимущество такого подхода в том, что при использовании Nix возможно получить точно такое же окружение сборки, как и в GitHub Actions. Для этого установите Nix, включите Nix Flakes и выполните:
nix developДля сборки проекта с тестами выполните:
CC=clang CXX=clang++ cmake -B tests/ -DWITH_TESTS=ON
cmake --build tests/ -j $(nproc)Для запуска тестов выполните:
ctest --test-dir tests/ --output-on-failureОбратите внимание, что последний тест — фаззинг-тест. Его выполнение занимает примерно минуту, он не завис.
Решение в зашифрованном виде хранится в директории solution.