Почему при построении std::string(0) компилятор не выдает предупреждение?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Почему при построении std::string(0) компилятор не выдает предупреждение?

Сообщение Anonymous »

Предположим, у меня есть этот фрагмент кода.

Код: Выделить всё

#include 

int main()
{
std::string(0);
return 0;
}
Написание std::string(0) приводит к вызову std::basic_string::basic_string(const char*) , с 0 в качестве аргумента этого конструктора, который пытается рассматривать аргумент как указатель на C-строку.

Выполнение этого кода, очевидно, приводит к выдается std::logic_error. Но у меня вопрос: почему и GCC, и MSVC 8.0 не выдают никаких предупреждений? Я ожидал увидеть что-то вроде «Создание указателя из целого числа без приведения».

Подробнее здесь: https://stackoverflow.com/questions/133 ... er-warning
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»