bool true and false
-
was ist denn unter C++ eher zu verwenden
BOOL oder bool
TRUE oder true
FALSE oder falseund wie ist es festgelegt
TRUE == 0
FALSE !=0
und wie ist das bei
true ?=
false ?=weiss da jeman genau bescheid ?
-
Technisch sind beide Varianten wohl gleichwertig. Allerdings mit dem Unterschied, daß BOOL normalerweise ein typedef für int ist (idR mit FALSE=0, TRUE=1) und bool ein eingebauter Typ (der nur die Werte true und false=!true enthält).
-
TRUE und FALSE sind doch noch historische Überbleibsel, weil C damals kein bool hatte. Heute würde ich doch ganz normal bool benutzen, und nicht mehr die Makros.
-
das hatte ich auch vor
aber eine frage dazu:return static_cast<bool>(::SendMessage(m_Handle, LVM_DELETEITEM, Pos, 0));==
warning C4800: 'LRESULT' : forcing value to bool 'true' or 'false' (performance warning)wie kann ich das umgehen ?
-
So (zum Beispiel):
#pragma warning(disable: 4800) return static_cast<bool>(::SendMessage(m_Handle, LVM_DELETEITEM, Pos, 0)); #pragma warning(default: 4800)Aber warum die int und nicht short genommen haben (bei BOOL) würd ich auch gern mal wissen
.
-
Lass den Cast weg - WinAPI-Funktionen geben meistens keinen bool-Wert zurück, sondern einen HRESULT, der eventuell mehr Informationen geben könnte als nur wahr/falsch.
(oder ignorier die Warnung)
-
stimmt schon - aber wenn selbst die MSDN sagt das diese aufgerufene SendMessage methode ein TRUE oder FALSE zurueck gibt macht das ignorieren schon sinn
-
ich hab fuer die BOOL to bool warnungen ein workaround
ich mache stattreturn static_cast<bool>(::SendMessage(...));,
return (::SendMessage(...)) ? true : false;
-
Ja ich sag ja ist, nur eine Möglichkeit von vielen... So ist noch kürzer:
return (SendMessage(...) == TRUE);