I read in the c++ tutorial that when the expression b1 && b2 is evaluated, with b1 and b2 two boolean expressions, b2 is not evaluated if it is not necessary
Yes, since you're instructing the program to take different execution paths based on a condition, you will typically see some sort of a conditional branch CPU instruction in the resulting binary.