Visual Studio 2012 - Functional - Warming C4800

Visual Studio 2012 - Functional - Warming C4800
Kamil9132
  • Rejestracja:około 14 lat
  • Ostatnio:prawie 4 lata
  • Postów:173
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.

TheAifam5
  • Rejestracja:ponad 12 lat
  • Ostatnio:ponad 6 lat
  • Postów:127
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
Kopiuj
#pragma warning(disable: 4800)
  1. Poprzez konfiguracje w VS
    "Properties => Configuration Properties => C/C++ => Advanced => Disable Specific Warnings" i wpisz 4800

Wole programowac niz spac :)
edytowany 4x, ostatnio: TheAifam5
gośćabc
  • Rejestracja:około 11 lat
  • Ostatnio:ponad 3 lata
  • Lokalizacja:Szczecin
  • Postów:500
0
edytowany 1x, ostatnio: gośćabc
Azarien
  • Rejestracja:ponad 21 lat
  • Ostatnio:2 minuty
0

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

MarekR22
Moderator C/C++
  • Rejestracja:ponad 17 lat
  • Ostatnio:2 minuty
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.


Jeśli chcesz pomocy, NIE pisz na priva, ale zadaj dobre pytanie na forum.
Azarien
ale może pokazać kod, który powoduje pojawienie się warninga. ostrzeżenie raczej samo nie wyskakuje, od samego #include'a.
Kamil9132
  • Rejestracja:około 14 lat
  • Ostatnio:prawie 4 lata
  • Postów:173
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:

Kopiuj
_VARIADIC_EXPAND_0X(_CLASS_BIND, , , , )

http://ideone.com/Gm82cf

TheAifam5
  • Rejestracja:ponad 12 lat
  • Ostatnio:ponad 6 lat
  • Postów:127
0

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


Wole programowac niz spac :)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.