gcc 4.5.3 compile error, unary & wants lvalue