Сообщение Re[5]: При портировании кода на линукс столкнулся с проблемо от 09.08.2019 12:28
Изменено 09.08.2019 12:42 watchmaker
Re[5]: При портировании кода на линукс столкнулся с проблемо
Здравствуйте, sergii.p, Вы писали:
SP> передав ссылку и наперёд зная, что там va_arg?
И?
Это не запрещено и может быть использовано правильно (с gcc): https://godbolt.org/z/0aolWi — никаких проблем. Если передаётся по ссылке, то и читается по ссылке, а если передаётся по значению (после удаления конструкторов), то и читается по значению.
SP>то есть получается gcc целенаправленно загнал себя в UB, передав ссылку и наперёд зная, что там va_arg? Как же тут говорить о правоте компилятора?
Нет. У gcc всё хорошо. Проблема в исходном коде автора темы.
SP> передав ссылку и наперёд зная, что там va_arg?
И?
Это не запрещено и может быть использовано правильно (с gcc): https://godbolt.org/z/0aolWi — никаких проблем. Если передаётся по ссылке, то и читается по ссылке, а если передаётся по значению (после удаления конструкторов), то и читается по значению.
SP>то есть получается gcc целенаправленно загнал себя в UB, передав ссылку и наперёд зная, что там va_arg? Как же тут говорить о правоте компилятора?
Нет. У gcc всё хорошо. Проблема в исходном коде автора темы.
Re[5]: При портировании кода на линукс столкнулся с проблемо
Здравствуйте, sergii.p, Вы писали:
SP> передав ссылку и наперёд зная, что там va_arg?
И?
Это не запрещено и может быть использовано правильно (с gcc): https://godbolt.org/z/0aolWi — никаких проблем. Если передаётся по ссылке, то и читается по ссылке, а если передаётся по значению (после удаления конструкторов), то и читается по значению.
SP>то есть получается gcc целенаправленно загнал себя в UB, передав ссылку и наперёд зная, что там va_arg? Как же тут говорить о правоте компилятора?
Нет. У gcc всё хорошо. Проблема в исходном коде автора темы.
Тут ситуация аналогична, например, коду printf("%s", 42);. В чём тут винить компилятор?
SP> передав ссылку и наперёд зная, что там va_arg?
И?
Это не запрещено и может быть использовано правильно (с gcc): https://godbolt.org/z/0aolWi — никаких проблем. Если передаётся по ссылке, то и читается по ссылке, а если передаётся по значению (после удаления конструкторов), то и читается по значению.
SP>то есть получается gcc целенаправленно загнал себя в UB, передав ссылку и наперёд зная, что там va_arg? Как же тут говорить о правоте компилятора?
Нет. У gcc всё хорошо. Проблема в исходном коде автора темы.
Тут ситуация аналогична, например, коду printf("%s", 42);. В чём тут винить компилятор?