diff options
-rw-r--r-- | std-core.mxx | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/std-core.mxx b/std-core.mxx index 6ee4a9e..3aba712 100644 --- a/std-core.mxx +++ b/std-core.mxx @@ -2,6 +2,28 @@ // copyright : Copyright (c) 2014-2017 Code Synthesis Ltd // license : MIT; see accompanying LICENSE file +// For some standard library implementations we need to pre-include certain +// headers to prevent their exporting. And to detect a standard library we +// need to include a certain header first. +// +#if defined(__clang__) +# if __has_include(<__config>) // libc++ _LIBCPP_VERSION +# include <__config> +# elif __has_include(<bits/c++config.h>) // libstdc++ __GLIBCXX__ +# include <bits/c++config.h> +# endif +#elif defined(__GNUC__) +# include <bits/c++config.h> // libstdc++ __GLIBCXX__ +#endif + +#if defined(_MSC_VER) +#elif defined(__GLIBCXX__) +# include <ext/atomicity.h> // Names with internal linkage. +#elif defined(_LIBCPP_VERSION) +#else +# error unknown standard library implementation +#endif + export module std.core; export |