Skip to content

Latest commit

 

History

History
38 lines (34 loc) · 2.32 KB

README.md

File metadata and controls

38 lines (34 loc) · 2.32 KB

42CPP

A collection of all C++ projects from 42, consisting of 10 different modules.

General instructions

Instructions apply for all projects and exercises unless stated otherwis on a specific exercise.

  • Makefiles must not relink.
  • Code must be compiled with c++ and the flags -Wall -Werror -Wextra -std=c++98 -pedantic.
  • Class names must be in UpperCamelCase format, that is "ClassName.cpp/.hpp/.tpp".
  • Output messages must be ended by a new-line character and displayed to the standard output.
  • Almost everything on the standard library is allowed, however boost libraries, *printf(), *alloc() and free() are forbidden.
  • The using namespace <ns_name> and friend keywords are forbidden.
  • Anything that requires to include the <algorithm> header is also forbidden, except on Module 08 and 09.
  • Memory leaks must be avoided.
  • From Module 02 to 09, classes must be designed in the Orthodox Canonical Form, except when explicitely stated otherwise.
  • Any function implementation put in a header file (except for function templates) are forbidden.
  • Double inclusion must be avoided by using include guards.

Code style

Both CodeFactor and Codacy are used to measure the code quality of this project, one important performance issue that I had was using regular parameters instead of const references, that is why most of the string parameters of this project are passed as const std::string &str instead of just std::string str.