#include "support/docstring.h"
+#if defined(_MSC_VER) && (_MSC_VER >= 1600)
+// 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.
+#include "support/numpunct_lyx_char_type.h"
+#endif
+
#include <fstream>
#include <sstream>
/// File stream for reading UTF8-encoded files with automatic conversion to
/// UCS4.
-class idocfstream : public std::basic_ifstream<char_type> {
+class ifdocstream : public std::basic_ifstream<char_type> {
typedef std::basic_ifstream<char_type> base;
public:
- idocfstream(std::string const & encoding = "UTF-8");
- explicit idocfstream(const char* s,
+ ifdocstream();
+ explicit ifdocstream(const char* s,
std::ios_base::openmode mode = std::ios_base::in,
std::string const & encoding = "UTF-8");
- ~idocfstream() {}
+ ~ifdocstream() {}
};
/// File stream for writing files in 8bit encoding \p encoding with automatic
/// conversion from UCS4.
-class odocfstream : public std::basic_ofstream<char_type> {
+
+class ofdocstream : public std::basic_ofstream<char_type> {
typedef std::basic_ofstream<char_type> base;
public:
- odocfstream(std::string const & encoding = "UTF-8");
- explicit odocfstream(const char* s,
+ ofdocstream();
+ explicit ofdocstream(const char* s,
std::ios_base::openmode mode = std::ios_base::out|std::ios_base::trunc,
std::string const & encoding = "UTF-8");
- ~odocfstream() {}
+ ~ofdocstream() {}
+ ///
+ void reset(std::string const & encoding);
};
+
+
/// UCS4 input stringstream
typedef std::basic_istringstream<char_type> idocstringstream;
\endcode
*/
odocstream & operator<<(odocstream & os, SetEnc e);
+idocstream & operator<<(idocstream & os, SetEnc e);
}