Gcc5

Hi there,

I have been living with these changes for a while, and it seems to behave properly for gcc 4.8, 4.9 and 5, and also with clang 3.4 and 3.5.

Cheers!