¿Cómo convierto una CString ATL / MFC en una QString?

Dado que la codificación del proyecto es probablemente Unicode (pero no estoy seguro), ¿cuál es la mejor manera de convertir ATL :: CString a QString?

Lo que he pensado es esto:

CString c(_T("SOME_TEXT"));
//...
std::basic_string<TCHAR> intermediate((LPCTSTR)c);
QString q;

#ifdef _UNICODE 
q = QString::fromStdWString(intermediate);
#else
q = QString::fromStdString(intermediate);
#endif

¿Crees que funciona? ¿Alguna otra idea?

Respuestas a la pregunta(1)

Su respuesta a la pregunta