X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fsupport%2Fstrfwd.h;h=c7e9c55517d6eb4726244274cdbb0b79503bc9b5;hb=cc2835392294fb1e82a89b2ec3803f78c9183f18;hp=10411cda229f86cd7b3270693a50f082783a2abb;hpb=49af9db6237f3d7c64c41cb3a4fac81be51e602a;p=lyx.git diff --git a/src/support/strfwd.h b/src/support/strfwd.h index 10411cda22..c7e9c55517 100644 --- a/src/support/strfwd.h +++ b/src/support/strfwd.h @@ -13,14 +13,6 @@ #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 -#endif - #ifdef USE_WCHAR_T // Prefer this if possible because GNU libstdc++ has usable @@ -31,13 +23,22 @@ namespace lyx { typedef wchar_t char_type; } #else +#if defined(_MSC_VER) && (_MSC_VER >= 1600) +#include +namespace lyx { typedef uint32_t char_type; } +#include "support/numpunct_lyx_char_type.h" // implementation for our char_type needed +#else #include namespace lyx { typedef boost::uint32_t char_type; } +#endif #endif // Forward definitions do not work with libc++ -#ifdef _LIBCPP_VERSION +// For gcc5 with the new std::string ABI forward declarations would work in +// principle, but I am not sure whether we want non-standard +// "namespace __cxx11" in our sources. +#if defined(USE_LLVM_LIBCPP) || defined(USE_GLIBCXX_CXX11_ABI) #include #else @@ -62,10 +63,14 @@ typedef basic_istream > istream; typedef basic_ostream > ostream; typedef basic_ostringstream, allocator > ostringstream; -} // namepace std +} // namespace std #endif + + + + namespace lyx { /** @@ -95,6 +100,15 @@ std::string const & empty_string(); // defined in docstring.cpp bool operator==(docstring const &, char const *); +#ifdef STD_STRING_USES_COW +template class trivial_string; +typedef trivial_string trivstring; +typedef trivial_string trivdocstring; +#else +typedef std::string trivstring; +typedef docstring trivdocstring; +#endif + } // namespace lyx #endif