Ошибка печати std::string с использованием std::string ptr

Я пытаюсь напечатать std::string, используя std::string ptr, как показано ниже, но получаю ошибку:

Error   1   error C2679: binary '<<' : no operator found which takes
 a right-hand operand of type 'std::basic_string<_Elem,_Traits,_Ax>'
 (or there is no acceptable conversion) 

Код:

#include <stdio.h>
#include <iostream>

int main()
{
    std::string * strPtr = new std::string("Hello World!\n");
    std::cout << (std::string)*strPtr;

    delete strPtr;

    return 0;
}

Что плохого я мог делать здесь?


person Jack    schedule 29.11.2017    source источник
comment
Какой компилятор вы используете? Потому что в GCC 7.2 работает. Кроме того, приведение (std::string)*strPtr не требуется.   -  person Francisco Gallego Salido    schedule 29.11.2017
comment
Я не могу воспроизвести вашу ошибку. Код в вопросе не является кодом, вызывающим ошибку.   -  person Some programmer dude    schedule 29.11.2017
comment
Я использовал Visual Studio 2008   -  person Jack    schedule 29.11.2017
comment
Это полная копия заголовка stackoverflow.com/questions/22724064/, но, к сожалению, я уже использовал свой флаг для чего-то другого, если кто-то хочет вступить во владение.   -  person underscore_d    schedule 30.11.2017


Ответы (1)


Понятно... Я не включил #include<string>. Моя ошибка. После добавления заголовочного файла все заработало.

person Jack    schedule 29.11.2017
comment
Что означает include #include? В любом случае, голосование о закрытии вызвано простой типографской ошибкой. - person underscore_d; 29.11.2017
comment
Отредактировал ответ... его заголовочный файл строки - person Jack; 29.11.2017
comment
Этот вопрос может помочь кому-то, кто совершает глупую ошибку, как я, и задается вопросом, что не так. - person Jack; 29.11.2017