Fix an issue with Boost compilation.

The issue is that when these macros are defined, libcxx
creates inline functions and so we end up with 2 separate
defintions of these functions (one inline in std and one
that is extern "C").

We undef these until libcxx is fixed. Without this,
some things can fail to compile correctly, like
Boost. Fixes issue #1716.