It should be as follows. unsigned int count = 1 << get_order(size) - order;
To be precise, as below?
unsigned int count = 1 << (get_order(size) - order);
Minus has more precedence than left shift. "1 << get_order(size) - order;" is equivalent to 1 << (get_order(size) - order);
-KR --nvpublic