Visual Studio 2012 - Functional - Warming C4800

0

Witam
Kilka dni temu, doszedłem do wniosku że warmingi kompilatora nie powinny wisieć i pora coś z nimi zrobić. Udało mi się z 400 warmingów zejść do jednego. Problem w tym, że ostatni warming nie leży w moim kodzie tylko w pliku functional.
Warming to: Ostrzeżenie 1 warning C4800: "int": wymuszanie wartości logicznej "true" lub "false" (ostrzeżenie wydajności) D:\Program Files (x86)\Microsoft Visual Studio 2012\VC\include\functional 1152 1.

W jaki sposób mogę się pozbyć tego warminga, oprócz oczywiście zmniejszenia poziomu warmingów?

Korzystam ze środowiska Microsoft Visual Studio Express 2012 for Windows Desktop.

1

Nagłówki VC (standard headers) nie są wolne od warningów poziomu 4. Możesz tylko wyłączyc ten typ warningu.

Edit:
Masz 2 sposoby wyłączenia danego warningu.

  1. Poprzez header
#pragma warning(disable: 4800)
  1. Poprzez konfiguracje w VS
    "Properties => Configuration Properties => C/C++ => Advanced => Disable Specific Warnings" i wpisz 4800
0

VS wyrzuca taki warning gdy implicite traktujesz inta jako bool.
Dodaj rzutowanie na (bool) żeby go uciszyć.

0

kodu nie dostaniecie ani ni można go poprawić, bo przecież napisał, że warring leci z nagłówka standardowej biblioteki "functional".
Dlatego rozwiązanie @aifam96 jest jedynym możliwym.

0

Poziom warmingów mam ustawiony na 3, jeśli jedyna opcja to wyłączenie tego warminga, to wolę go zostawić, może kiedyś przyda się jeśli zrobię tak w swoim kodzie.

Warming jest w pliku functional w 1152 linii:

_VARIADIC_EXPAND_0X(_CLASS_BIND, , , , )

http://ideone.com/Gm82cf

0

W plikach VC (standard headers) nie ma co szukac ani poprawiac. Spróbuj skompilowac to w innym kompilatorze np: Cygwin lub MinGW

1 użytkowników online, w tym zalogowanych: 0, gości: 1