enable warnings and C++11 when compiling with Clang
add a template keyword that is required by Clang
allow two overloads of the operator>> to access a protected static variable (required to compile with Clang)