Здравствуйте, Vain, Вы писали:
V>Здравствуйте, byleas, Вы писали:
B>>char* ch4 = expr ? 0 : nullptr; // error, types are not compatible
B>>VC10 считает, что здесь всё ок. Тип выражения получается nullptr (в vc10 это ключевое слово означает и тип, и rvalue значение).
V>Может совместимость у них такая? Пытались расширения отключить?
/Wall /Za ничего не говорят.
Вообще, это не баг и вышеуказанное утверждение в комментарии ошибочное:
4.10 Pointer conversions [conv.ptr]
A null pointer constant is an integral constant expression (5.19) rvalue of integer type that evaluates to zero or an rvalue of type std::nullptr_t. A null pointer constant can be converted to a pointer type… A null pointer constant of integral type can be converted to an rvalue of type std::nullptr_t.
char* ch4 = expr ? 0 : nullptr; // error, types are not compatible
VC10 считает, что здесь всё ок. Тип выражения получается nullptr (в vc10 это ключевое слово означает и тип, и rvalue значение).
Здравствуйте, byleas, Вы писали:
B>char* ch4 = expr ? 0 : nullptr; // error, types are not compatible
B>VC10 считает, что здесь всё ок. Тип выражения получается nullptr (в vc10 это ключевое слово означает и тип, и rvalue значение).
Может совместимость у них такая? Пытались расширения отключить?
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]