Quote Originally Posted by algorism View Post
sizeof is not a function call. It's an operator. It doesn't need parentheses. The parentheses that are sometimes necessary are actually the cast operator.

Code:
int x;
size_t s1 = sizeof x;
size_t s2 = sizeof (int);
It does need parentheses if it is typename instead of expression. But here it is expression, so right, it is fine.

Anyway, it does not crash for me and I could not find any error by looking at the code.