Kód
QString s(a+b+c+d+e+f+g);
std::cout << s;
je obecně špatně. Qt lze nakonfigurovat bez podpory STL, je tedy potřena zkontrolovat příslušný define, než si toto můžete v kódu dovolit (nebo si ručně přetížit daný operátor).
Předpoklad použití UTF-8 pro názvy souborů na linuxu je opět špatný. Proto např. v glib existují funkce typu g_filename_to/from_utf8. Qt se o to naštěstí postará samo, pokud použijete jeho funkce. Ale tvrdit, že funkci fopen předáte utf-8 je blbost.
UTF-16 se ve Windows používá až od Windows XP. Před tím to bylo UCS-2. Ale dobře, nemá smysl podporovat již delší dobu nepodporované verze, píšu to jen pro upřesnění.
Při použití wchar_t není standardem zaručeno použití UTF-16 či UTF-32 a je to jen vaše doměnka. Záleží na kompilátoru, jak váš řetězec vytvoří. K tomuhle budou v C++0x prefixy u a U a nové typy char16_t a char32_t.