String laziness
This might be a stupid question, but any good reason the C++ compiler can't/shouldn't automatically treat "hello" as e.g. L"hello" when the type is explicitly clear from the context? E.g.: const wchar_t* message[2] = { "hello", "world" };