SHRT

PRIMER

keywords

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