SHRT
PRIMERkeywords
cclasssstructeenum class
aautofforwwhile
elelsevvirtualnnamespace
uusingkconstddelete
ooverriderreturnbbreak
contcontinuekeconstexpropoperator
pubpublicpriprivateproprotected
whichswitchnilnullptrpcout + endl
include · std · print
i vector li project/local.hpp $vector<int> nums; $cout << nums.size() << $endl; p nums.size(); p $"size: {nums.size()}";
types · members
n demo { u Count = int; ke Count limit = 3; e Mode { Fast, Safe }; s Point { int xx; int yy; }; c Item : pub Base { pri: int value; pro: void reset(); pub: v int score() k o => value; int op[](int index) k => value; }; }
flow
f (int index = 0; index < 10; index += 1) { if index == 3 { cont; } if index == 8 { b; } } w ready { ready = false; } if value > 0 { r value; } el { r 0; }
which
which mode { Mode::Fast: p "fast"; b; Mode::Safe: p "safe"; b; default: r; }
result arrows
int add(int left, int right) => left + right; a answer = => 6 * 7; a work = [=] => { p "work"; }; a twice = [&](int value) => value * 2;
elvis · guards
a chosen = value ?? fallback; value ??= fallback; pointer ?? r nil; ready ?? r; ready ?? start(); a first = aa ?? bb ?? cc;
null-safe
a name = player.weapon?.name; a damage = player?.weapon?.damage ?? 0; Node* node = nil;
defer
int* item = new int(7); defer d item; int* data = new int[8]; defer d[] data; defer p "leaving"; defer { close(); release(); }
rule 1
identifier.length >= 2 · T · F · template<typename T> · true · false · C++20 ⊂ SHRT