// 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 > 19971L)
+#if (__cplusplus > 199711L)
#include <ciso646>
#endif
namespace lyx {
-/// String type for storing the main text in UCS4 encoding
+/**
+ * String type for storing the main text in UCS4 encoding.
+ * Use std::string only in cases 7-bit ASCII is to be manipulated
+ * within the variable.
+ */
typedef std::basic_string<char_type, std::char_traits<char_type>,
std::allocator<char_type> > docstring;
// defined in docstring.cpp
bool operator==(docstring const &, char const *);
+#ifdef STD_STRING_USES_COW
+template<typename Char> class trivial_string;
+typedef trivial_string<char> trivstring;
+typedef trivial_string<char_type> trivdocstring;
+#else
+typedef std::string trivstring;
+typedef docstring trivdocstring;
+#endif
+
} // namespace lyx
#endif