(aka ~COMP6771()
)
a.k.a.: Revision
CPU-native types: int
, double, void*
, etc.
struct
, class
, union
void foo(int, double*)
const int i
= 5
auto
: auto it = std::vector<int>{}.begin();
T/T&/T*
vector, tuple
, etc.#include<>
std::vector
std::list
Algorithms, e.g.
std::copy()
std::transform
for, if, while, {}, namespace
introduce scopesint
Initialisation customisable through constructorsv1 + v2 == vec2d{v1.x + v2.x, v1.y + v2.y}
is more natural than add(v1, v2)
Full list of overloadable operators
throw/try/catch
const&
!!
std::unique_ptr<T>/T*
for unique ownership/observerationstd::shared_ptr<T>/std::weak_ptr<T>
for shared ownershiptemplate <typename T>
template <int N>
)template <template <typename> typename Container>
)T
a pointer type (e.g. int*
)?T
look like with const
removed? (e.g. const int
-> int
)T&&
) introduced in C++11:
auto
type deduction and rvalue references binds to anythingif-constexpr
decltype:
get the declared type of a variable at compile-timevirtual
methodsoverride, final
, pure-virtual (abstract) methodsdynamic_cast
virtual
destructors!T*
and T&
!(from guest lecture; not assessable)
https://www.youtube.com/watch?v=qROu_TyeolU&t=77s&ab_channel=BoyzIIMen-Topic
* Not yet (click right)