Holy God I feel uneasy when I see things like this use of sizeof. It works and is standards compliant, but I have a shiver when I see it.

Just an inside (will still merge), you should use sizeof( EXTENSIONS[0] ) instead of sizeof(std::string) just in case you ever change the datatype of EXTENSIONS but forget to change the last sizeof().