¿Por qué es que sin << ""; está bien pero wcout << string (); ¿no es?

#include <iostream>
#include <string>

using namespace std;

int main()
{
    wcout << L"Hello";          // OK.
    wcout << wstring(L"Hello"); // OK.
    wcout << "Hello";           // OK. Why?
    wcout << string("Hello");   // Error. Why?
}

Por questd::wcout acepta un literal de cadena estrecha como su argumento pero no acepta un objeto de cadena estrecha?

Respuestas a la pregunta(2)

Su respuesta a la pregunta