This repository contains all material for the C++ Course taught at CERN from Sebastien Ponce (LHCb).
For each commit to master, the slides are compiled to a PDF and uploaded to the download branch.
- Latest essentials course PDF.
- Latest full course PDF.
Video recordings are available in the past events.
- 5th HEP C++ Course and Hands-on Training (2022 October - advanced)
- 4nd HEP C++ Course and Hands-on Training (2022 March - essentials)
- 3rd HEP C++ Course and Hands-on Training (2021 August)
- 2nd HEP C++ Course and Hands-on Training (2021 January)
- 1st HEP C++ Course and Hands-on Training (2020 October)
Check this page for announcements of upcoming training events (including those with this material).
Make sure to install the pre-commit hooks:
pip3 install pre-commit
# cd to repository
pre-commit install
Spell check is performed with the codespell
pre-commit hook on every commit. To ignore words you can put them in the
codespell.txt
file. This file should list the supposedly misspelled words with
one word per line and is case-sensitive.
- Prefer "east const" for new stuff.
The cheat sheet is only for mentors, with roadmap, solutions and key points to discuss.
Readmes are for students. These host the basic building instructions, give the name of the main program file, and possibly give a summary of the exercise goals and steps.
Inside the code, one gets more precise help on what should/could be done and also where (e.g. when the code is long and only one part needs to be worked on).
Each exercice should provide a solution in the solution
subdirectory. For any <name>.cpp
exercise, the solution should be called solution/<name>.sol.cpp
.
For the time being, we maintain both a raw Makefile
and a CMakeLists.txt
.
The make
command should work directly on any linux-like system. The make solution
command should build the solution.
The cmake
tool adds support for building on Windows. It is meant to be used in a build
subdirectory:
mkdir build
cd build
cmake ..
make
make solution
Thanks goes to these wonderful people (emoji key):
This project follows the all-contributors specification. Contributions of any kind welcome!