if( var ) is schneller als if( var == true ), weil bei der 2. variante noch der ausdruck var == true ausgewertet werden muss.
die if anweisung wird in c++ immer ausgeführt, wenn der ausdruck zwischen den klammern != 0 is.
Wenn ich mich jetzt nich irre, aber bei vergleiche sind gleich schnell. Warum? var alleine Hinterläst kein Status Flag im Flag Register der CPU. Es muss also ein Vergleich vorgenommen werden, da dieser ein Status Flag im Register hinterläst. Also ob ich nun geben true vergleich oder einfach gegen != NULL ist Wurscht.
Ich weis das es einen Bedingungslosen Jump Befehl gibt und das es einen Bedingten Jump Befehl gibt. Da hier mal eine Frage an alle die gut in Assembler für x86 CPU's sind. Damit if(var) schneller ist als if(var == true) brauch es einen Jump Befehl der als Argument einen Wert enthält "var". Wenn dieser Jump Befehl aber ebenfalls einen zweiten Wert verlangt, dann sind beide Varianten wieder gleich schnell.