Удаление нескольких указателей в одной строке. С++
Удаляет ли это все указатели или просто удаляет первый указатель p1?
delete p1,p2,p3,p4,p5;
Ответ 1
Это эквивалентно:
(((((delete p1),p2),p3),p4),p5);
То есть, это deletep1, а затем к результату (который не существует) и p2 применяется оператор запятой. Выражения p2 до p5 просто оцениваются и результаты отбрасываются.
Ответ 2
Поскольку ',' является оператором запятой, очевидно, что только первый объект, на который указывает, удаляется, а остальные выражения вычисляются и результаты отбрасываются: