GCC doesn't like #pragmas between the function declaration and definition
GCC doesn't like {} initialization
use ASSERT_FALSE for boolean comparisons