¿Cómo convierto una cadena en UTF-16 a UTF-8 en C ++?

Considerar:

STDMETHODIMP CFileSystemAPI::setRRConfig( BSTR config_str, VARIANT* ret )
{
mReportReaderFactory.reset( new sbis::report_reader::ReportReaderFactory() );

USES_CONVERSION;
std::string configuration_str = W2A( config_str );

Pero en config_str obtengo una cadena en UTF-16. ¿Cómo puedo convertirlo a UTF-8 en este código?

Respuestas a la pregunta(3)

Su respuesta a la pregunta