Шаблон для разработки и тестирования программ на С++ по предмету "Алгоритмы и структуры данных"
- Integrated Development Environment: Microsoft Visual Studio
- Build system: cmake (https://ps-group.github.io/cxx/cmake_cheatsheet)
- Tests: gtest
- Code style check: cpplint
Шаг 1. Создать папку build в вашем локальном репозитрии.
Шаг 2. Перейти в папку build и вызывать из неё командную строку (cmd).
Шаг 3. Выполнить команду, соотвутсвующую вашей версии Visual Studio:
cmake -G "Visual Studio 17 2022" ..
cmake -G "Visual Studio 16 2019" ..
cmake -G "Visual Studio 15 2017" ..
Примечание. Здесь .. - поднятие на уровень вверх. В качестве данного аргумента должен быть указан путь до основного cmake-листа. Так как мы спустились от основного CMakeLists.txt в папку build, то можно указать путь именно таким коротким способом. Если вы создаёте папку build в каком-то другом месте, не забудьте указать корректный путь.
Шаг 4. В папке build появится сборка проекта. Запускаем как обычно sln-файл и пишем код.
- создать подпапку (по названию приложения или по названию библиотеки),
- добавить необходимые файлы (.h, .hpp, .cpp, .c),
- создать подходящий под ситуацию CMakeLists.txt в этой папке,
- добавить сразу файл(-ы) под тесты в папку tests при необходимости,
- внести в основной CMakeLists.txt еще одну папку для сборки (порядок для сборки для данного шаблона играет роль!).
Примечание 1. Старайтесь придерживаться одного стиля именования!
Примечание 2. При создании библиотек у вас не может быть только хедер (.h, .hpp), даже если вся реализация сидит в нём. Файл .cpp / .c обязан быть, иначе возникнут ошибки при сборке.
git clone ссылка-до-ВАШЕГО-репозитория
git branch имя-рабочей-ветки
git checkout имя-рабочей-ветки
git checkout -b имя-рабочей-ветки
git add .
git add -u .
git status
git commit –m "fix problem with magic numbers, add comments"
git push origin имя-рабочей-ветки
git push –u origin имя-рабочей-ветки
Замечание. Если сделать git push ветки без ключа -u, git не свяжет локальную ветку с веткой удалённого репозитория. Смысл использовать ключ -u есть только при пуше новых веток, для существующих (связанных с удалёнными) веток каждый раз перезаписывать связку необязательно.
Исключение - это ситуация, которая не предусмотрена стандартным поведением программы.
Полезная статья с примерами - https://evileg.com/ru/post/289/
Assert — это специальная конструкция, позволяющая проверять предположения о значениях произвольных данных в произвольном месте программы.
Статья с примерами - http://cppstudio.com/post/946/
-
Документация по исключениям https://en.cppreference.com/w/cpp/error/exception
-
Документация по функции сообщения об ошибке https://en.cppreference.com/w/cpp/error/assert
-
Статья на подумать - "Выбор правильной стратегии обработки ошибок (части 1 и 2)" https://habr.com/ru/company/vk/blog/322416/