#ifndef STRFWD_H
#define STRFWD_H
+// This includes does nothing but defining _LIBCPP_VERSION
+// if libc++ is used (rather than libstdc++) - we first
+// check if we have at least a c++03 standard before
+// including the file
+#if (__cplusplus > 199711L)
+#include <ciso646>
+#endif
+
#ifdef USE_WCHAR_T
// Prefer this if possible because GNU libstdc++ has usable
#endif
+// Forward definitions do not work with libc++
+#ifdef _LIBCPP_VERSION
+#include <string>
+#else
namespace std {
} // namepace std
+#endif
namespace lyx {