C++ pensieve

operator precedence

scope::
suffix++ -- () [] . -> typeid() const_cast dynamic_cast reinterpret_cast static_cast
prefix++ -- + - ! ~ (type) * & sizeof new new[] delete delete[]
member.* ->*
multiplication* / %
addition+ -
shifts<< >>
comparison< <= > >=
equates== !=
and&
xor^
or|
logical and&&
logical or||
conditional?:
assignment= += -= *= /= %= <<= >>= &= ^= |=
exceptionthrow
sequence,

stdexcept categories

logic_errorgeneric error in condition or invariant
invalid_argumentargument invalid
domain_errorargument domain error
length_errorargument of excessive size
out_of_rangeargument outside expected range
runtime_errorerrors in the runtime context
range_errorcomputational range errors
overflow_errorarithmetic overflows
underflow_errorarithmetic underflows

operator signatures

assignmentR &operator=(L l) {}
arithmeticR operator+(L l) const {}
R operator-(L l) const {}
R operator*(L l) const {}
R operator/(L l) const {}
R operator%(L l) const {}
compound arithmeticR &operator+=(L l) {}
R &operator-=(L l) {}
R &operator*=(L l) {}
R &operator/=(L l) {}
R &operator%=(L l) {}
incrementalR &operator++() {}
R &operator++(int) {}
R &operator--() {}
R &operator--(int) {}
logicalR operator!() const {}
R operator&&(L l) const {}
R operator||(L l) const {}
bitwiseR operator~() const {}
R operator&(L l) const {}
R operator|(L l) const {}
R operator^(L l) const {}
compound bitwiseR &operator&=(L l) {}
R &operator|=(L l) {}
R &operator^=(L l) {}
shiftR operator<<(L l) const {}
R operator>>(L l) const {}
compound shiftR &operator<<=(L l) {}
R &operator>>=(L l) {}
comparisonR operator==(L const &l) const {}
R operator!=(L const &l) const {}
R operator<(L const &l) const {}
R operator>(L const &l) const {}
R operator<=(L const &l) const {}
R operator>=(L const &l) const {}
subscriptR &operator[](L l) {}
indirectionR &operator*(L l) {}
address ofR *operator&(L l) {}
dereferenceR *operator->(L l) {}
R &operator->*(L l) {}
commaR operator,(L l) {}