compile on gcc and clang,
fixed -> anonymous union having members
      -> __FUNCTION_ incompatibiliies
      -> codecvt