В ряде вопросов на ruSO, например, здесь, а также в вопросах на CyberForum (например, вот), да и в целом на просторах интернета многие люди сталкиваются с проблемой, описанной в заголовке вопроса. Как исправить её, я знаю из тех же вопросов. Почему возникает, тоже в курсе. Вопрос в другом – почему не возникает у меня?
Если подробнее: попытался для решения вопроса по первой ссылке воспроизвести проблему, чтобы проверить своё решение, а потом уже написать его в ответ. И столкнулся с тем, что у меня прекрасно и без каких-либо проблем работает то, что вызывает вопросы у других. Например, такой простой код:
#include <iostream>
int main()
{
char * x = "Hello";
std::cout << x << std::endl;
getchar();
return 0;
}
компилируется без проблем и, как и ожидалось, выводит "Hello" как на VS 2015, так и на VS 2008.
Ещё раз вопрос: почему у меня не воспроизводится описанная выше проблема и const char * без проблем присваивается char *? Каковы условия возникновения данной ошибки?