На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: Qraizer, Hsilgos
  
> Локально отключить ахтунги?
    В соседней теме я искал и нашел способ заставить компилятор ругаться на мой некорректный код.
    Теперь вопрос немножко обратный. Как мне в одном (ну или нескольких, но не глобально) месте
    подавить вывод предупреждений. Типа "я знаю, что делаю, мамой клянусь - бага не будет, не
    предупреждай" 8-)

    Было бы вааще супер и мега, если бы такое решалось через атрибуты, но видимо пока это мечты!
      Предупреждения являются инициативой компилятора. Везде, где в Стандарте написано "no diagnostic required", компилятор имеет право промолчать.

      Добавлено
      Так-то обычно везде есть implementation specific возможности. Ключики компиляции или там #pragma. У VS это /wXYYYY или #pragma warning(XXXX:YYYY) соответственно, где X (d) или XXXX (disable) говорит, что делать, а YYYY номер диагностики. Для потенциальной потери точности из-за сужающего преобразования это 4244.

      Добавлено
      ExpandedWrap disabled
        #include <iostream>
        #include <limits>
         
        void Test(const uint16_t cho) {
          std::cout << "Okay: " << cho << std::endl;
        }
         
        int main()
        {
          uint64_t blin = std::numeric_limits<uint64_t>::max();
         
        #pragma warning(push)
        #pragma warning(disable:4244)
          Test(blin);
        #pragma warning(pop)
          Test(blin);
         
          return 0;
        }


      Добавлено
      А static_cast<> не вариант разве? Тогда уж safe_cast самое то :whistle:
        Цитата Qraizer @
        А static_cast<> не вариант разве?

        Ну если гарантия есть, то да - это вариант.

        Оставлю тут, пусть будет пример для GCC:

        ExpandedWrap disabled
          #pragma GCC diagnostic push
          #pragma GCC diagnostic ignored "-Wunused-variable"
           
          int x;
          // код с использованием x
           
          #pragma GCC diagnostic pop
        0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
        0 пользователей:


        Рейтинг@Mail.ru
        [ Script execution time: 0,0217 ]   [ 16 queries used ]   [ Generated: 27.04.24, 20:11 GMT ]