Почему std::push_heap генерирует предупреждение -Wstrict-overflow=3, даже если никакие подписанные типы не задействованыC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Почему std::push_heap генерирует предупреждение -Wstrict-overflow=3, даже если никакие подписанные типы не задействованы

Сообщение Anonymous »

Согласно документации -Wstrict-overflow, уровень 3:

Также предупреждайте о других случаях, когда сравнение упрощенный. Например: x + 1 > 1 упрощается до x > 0.

Показанный ниже MWE выдает следующее предупреждение на уровне 3 и выше, но не ниже, И, если для оптимизации установлено значение -O2 и выше, но не ниже. Это демонстрируется в версиях g++ 9.3.0 и 10.2.

$ g++ -O3 -Wall -Wextra -pedantic -std=c++17 -Wstrict-overflow= 3 a.cpp

a.cpp: В функции 'void std::push_heap(_RAIter, _RAIter) [с _RAIter = long unsigned int*]':
a.cpp:8:1: предупреждение: предполагается, что при изменении X +- C1 cmp C2 на X cmp C2 --+ C1 [-Wstrict-overflow]

Демонстрация в реальном времени
MWE

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

#include 

int main() {
std::size_t v[] = {0,10,3};
std::make_heap(std::begin(v),std::end(v));
std::pop_heap(std::begin(v),std::end(v));
std::push_heap(std::begin(v),std::end(v)); // 

Подробнее здесь: [url]https://stackoverflow.com/questions/63405519/why-does-stdpush-heap-generate-a-wstrict-overflow-3-warning-even-if-no-signed[/url]
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Разница между "On-Heap" и "Off-Heap"
    Anonymous » » в форуме JAVA
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous
  • Разница между "On-Heap" и "Off-Heap"
    Anonymous » » в форуме JAVA
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous
  • Измените параметр overflow-visible на overflow-auto, если размер элемента больше области просмотра.
    Anonymous » » в форуме CSS
    0 Ответы
    36 Просмотры
    Последнее сообщение Anonymous
  • Overflow-y auto делает клип overflow-x невидимым
    Anonymous » » в форуме CSS
    0 Ответы
    37 Просмотры
    Последнее сообщение Anonymous
  • Обновление сертификата Apple Push Push Push
    Anonymous » » в форуме IOS
    0 Ответы
    51 Просмотры
    Последнее сообщение Anonymous

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