commit 990446c0e1d784ef9e067f109d4eaef08a9237b4
Author: Vincent van Ravesteijn <v...@lyx.org>
Date:   Tue Oct 20 21:23:01 2015 +0200

    msvc: Move implementation of numpunct<> functions to cpp file
    
    These functions use lyx::from_ascii which means they need to include
    docstring.h, but that results in a circular include.

diff --git a/src/support/docstream.cpp b/src/support/docstream.cpp
index f6548e1..b07ac56 100644
--- a/src/support/docstream.cpp
+++ b/src/support/docstream.cpp
@@ -28,7 +28,24 @@ using lyx::ucs4_codeset;
 
 #if defined(_MSC_VER) && (_MSC_VER >= 1600)
 std::locale::id numpunct<lyx::char_type>::id;
-#endif
+
+namespace std {
+// Implementation of numpunct<lyx::char_type> defined in 
numpunct_lyx_char_type.h
+typedef basic_string<lyx::char_type> string_type;
+       
+string_type numpunct<lyx::char_type>::truename() const
+{ 
+       return lyx::from_ascii(numpunct<char>::truename()); 
+}
+       
+string_type numpunct<lyx::char_type>::falsename() const
+{ 
+       return lyx::from_ascii(numpunct<char>::falsename()); 
+}
+
+} // namespace std
+
+#endif // _MSC_VER >= 1600
 
 
 namespace {
diff --git a/src/support/numpunct_lyx_char_type.h 
b/src/support/numpunct_lyx_char_type.h
index 6ef22e6..b3f6cde 100644
--- a/src/support/numpunct_lyx_char_type.h
+++ b/src/support/numpunct_lyx_char_type.h
@@ -41,11 +41,9 @@ namespace std
                string grouping() const
                { return numpunct<char>::grouping(); }
 
-               string_type truename() const
-               { return lyx::from_ascii(numpunct<char>::truename()); }
-
-               string_type falsename() const
-               { return lyx::from_ascii(numpunct<char>::falsename()); }
+               // Implementation can be found in docstream.cpp
+               string_type truename() const;
+               string_type falsename() const;
 
 
        protected:

Reply via email to