C++ – Why are empty expressions legal in C/C++

c++language-design

int main()
{
  int var = 0;; // Typo which compiles just fine
}

Best Solution

How else could assert(foo == bar); compile down to nothing when NDEBUG is defined?