5 things to not bother in C++

Pseudo destructors

typedef int I;
int main() {
  I x = 10;
  x.I::~I();
  x = 20;
}

Built-in member access operators

ODR use

ODR use something so question

struct F {
   static const int g_x = 2;
};

int g_x_plus_1 = F::g_x + 1; // in this context, only the value of g_x is needed.
                             // so it's OK without the definition of g_x

vector<int>  vi;
vi.push_back( F::g_x );      // Error, this is odr-used, push_back(const int & t) expect
                             // a const lvalue, so it's definition must be present