#else
+#if defined(__clang__)
+
+#undef _LIBCPP_INLINE_VISIBILITY
+#define _LIBCPP_INLINE_VISIBILITY
+#undef _LIBCPP_EXTERN_TEMPLATE
+#define _LIBCPP_EXTERN_TEMPLATE(...)
+
+#include <set>
+
+#undef _LIBCPP_INLINE_VISIBILITY
+#define _LIBCPP_INLINE_VISIBILITY __attribute__ ((__visibility__("hidden"), __always_inline__))
+#undef _LIBCPP_EXTERN_TEMPLATE
+#define _LIBCPP_EXTERN_TEMPLATE(...) extern template __VA_ARGS__;
+
+#else
+
+
// ensure that default visibility is used with any class that is used as an exception type
# include <memory>
# include <new>
# include <stdexcept>
+
# include <bits/c++config.h>
# include <bits/stl_tree.h>
# undef _GLIBCXX_VISIBILITY_ATTR
# undef _GLIBCXX_VISIBILITY_ATTR
# define _GLIBCXX_VISIBILITY_ATTR(V) __attribute__ ((__visibility__ (#V))) // restore `_GLIBCXX_VISIBILITY_ATTR`
+#endif //ifdef __clang__
+
#endif //ifndef HIDE_DALI_INTERNALS
#endif /* __DALI_SET_H__ */