fixed looser throw specifier bug, appearing with gcc 4.6.3+

I couldn't compile with gcc 4.6.3 because of the looser throw specifier issue (http://bytes.com/topic/c/answers/916758-looser-throw-specifier-gcc-4-0-1-a), whereby gcc requires the definition of throw() in all derived classes, if the parent class throws errors. 

This should be backwards compatible, but i havent tested it yet. So before accepting, please make sure that it works with old versions of gcc, too.