Dlaczego tak się dzieje << << ”; jest OK, ale wcout << string (); nie jest?

#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?
}

Dlaczegostd::wcout akceptuje wąski literał ciągu jako jego argument, ale nie akceptuje wąskiego obiektu ciągu?

questionAnswers(2)

yourAnswerToTheQuestion