use `__cplusplus > 201100L` instead of __GXX_EXPERIMENTAL_CXX0X__ and fix bug with g++-4.8