commit a0a472c16e09205c1eca5dd9521720368ce9e3fe
Author: Peter Kümmel <[email protected]>
Date: Sat Apr 2 11:03:17 2016 +0200
msvc2015: always incude strfwd.h first, to prevent crashes of our
typedefed streams.
diff --git a/development/cmake/configCompiler.h.msvc
b/development/cmake/configCompiler.h.msvc
index d978be1..334015b 100644
--- a/development/cmake/configCompiler.h.msvc
+++ b/development/cmake/configCompiler.h.msvc
@@ -168,6 +168,9 @@
#define HAVE_MODE_T
#endif
+#if defined(_MSC_VER) && (_MSC_VER >= 1600)
+#include "support/strfwd.h" // always first, to prevent compiler's
interpretation/instantiations of some typedef
+#endif
#endif
diff --git a/src/support/strfwd.h b/src/support/strfwd.h
index 30e1c09..58b44f5 100644
--- a/src/support/strfwd.h
+++ b/src/support/strfwd.h
@@ -23,8 +23,14 @@ namespace lyx { typedef wchar_t char_type; }
#else
+#if defined(_MSC_VER) && (_MSC_VER >= 1600)
+#include <cstdint>
+namespace lyx { typedef uint32_t char_type; }
+#include "support/numpunct_lyx_char_type.h" // implementation for our
char_type needed
+#else
#include <boost/cstdint.hpp>
namespace lyx { typedef boost::uint32_t char_type; }
+#endif
#endif
@@ -62,12 +68,7 @@ typedef basic_ostringstream<char, char_traits<char>,
allocator<char> > ostringst
#endif
-// Ugly workaround for MSVC10 STL bug:
-// std::numpunct has a hardcoded dllimport in definition, but we wanna it with
32 bit
-// so we can't import it and must define it but then the compiler complains.
-#if defined(_MSC_VER) && (_MSC_VER >= 1600)
-#include "support/numpunct_lyx_char_type.h"
-#endif
+
namespace lyx {