- Compile your code with c++ and the flags -Wall -Wextra -Werror
- Your code should still compile if you add the flag -std=c++98
- You are allowed to use almost everything from the standard library. Use as much as possible the C++-ish versions of the C functions you are used to.
- You can’t use any other external library. It means C++11 (and derived forms) and Boost libraries are forbidden.
- The following functions are forbidden too: *printf(), *alloc() and free()
- Unless explicitly stated otherwise, using namespace <ns_name> and friend keywords are forbidden
- You are allowed to use the STL in the Module 08 and 09 only. That means:
- No Containers (vector/list/map/and so forth)
- no Algorithms (anything that requires to include the header)
Module | Content |
---|---|
00 |
Namespaces, classes, member functions, stdio streams, init lists, static and const, etc. |
01 |
Memory allocation, pointers to members, references and switch statements |
02 |
Ad-Hoc polymorphism, operator overloading and orthodox canonical form |
03 |
Inheritance |
04 |
Subtype polymorphism, abstract classes and interfaces |
05 |
Repetition and exceptions |
06 |
C++ Casts |
07 |
C++ Templates |
08 |
Templated Containers, Iterators and Algorithms |