This came up cause I was trying to clear bits in a loop and some cases required clearing the entire value. I was trying to do so in a branch-free manner.Code:
unsigned int foo = 0xFFFFFFFF;
//i'd think these would return the same result, but
//they don't in visual studio 2010 (debug/release). why?
std::cout<< (foo << 32) << " " << (0xFFFFFFFF << 32) <<std::endl;