Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/prusa3d/PrusaSlicer.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/boost/nowide/iostream.hpp')
-rw-r--r--src/boost/nowide/iostream.hpp99
1 files changed, 99 insertions, 0 deletions
diff --git a/src/boost/nowide/iostream.hpp b/src/boost/nowide/iostream.hpp
new file mode 100644
index 000000000..6ab004a25
--- /dev/null
+++ b/src/boost/nowide/iostream.hpp
@@ -0,0 +1,99 @@
+//
+// Copyright (c) 2012 Artyom Beilis (Tonkikh)
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//
+#ifndef BOOST_NOWIDE_IOSTREAM_HPP_INCLUDED
+#define BOOST_NOWIDE_IOSTREAM_HPP_INCLUDED
+
+#include <boost/nowide/config.hpp>
+#include <boost/scoped_ptr.hpp>
+#include <iostream>
+#include <ostream>
+#include <istream>
+
+#ifdef BOOST_MSVC
+# pragma warning(push)
+# pragma warning(disable : 4251)
+#endif
+
+
+namespace boost {
+namespace nowide {
+ #if !defined(BOOST_WINDOWS) && !defined(BOOST_NOWIDE_DOXYGEN)
+ using std::cout;
+ using std::cerr;
+ using std::cin;
+ using std::clog;
+ #else
+
+ /// \cond INTERNAL
+ namespace details {
+ class console_output_buffer;
+ class console_input_buffer;
+
+ class BOOST_NOWIDE_DECL winconsole_ostream : public std::ostream {
+ winconsole_ostream(winconsole_ostream const &);
+ void operator=(winconsole_ostream const &);
+ public:
+ winconsole_ostream(int fd);
+ ~winconsole_ostream();
+ private:
+ boost::scoped_ptr<console_output_buffer> d;
+ };
+
+ class BOOST_NOWIDE_DECL winconsole_istream : public std::istream {
+ winconsole_istream(winconsole_istream const &);
+ void operator=(winconsole_istream const &);
+ public:
+
+ winconsole_istream();
+ ~winconsole_istream();
+ private:
+ struct data;
+ boost::scoped_ptr<console_input_buffer> d;
+ };
+ } // details
+
+ /// \endcond
+
+ ///
+ /// \brief Same as std::cin, but uses UTF-8
+ ///
+ /// Note, the stream is not synchronized with stdio and not affected by std::ios::sync_with_stdio
+ ///
+ extern BOOST_NOWIDE_DECL details::winconsole_istream cin;
+ ///
+ /// \brief Same as std::cout, but uses UTF-8
+ ///
+ /// Note, the stream is not synchronized with stdio and not affected by std::ios::sync_with_stdio
+ ///
+ extern BOOST_NOWIDE_DECL details::winconsole_ostream cout;
+ ///
+ /// \brief Same as std::cerr, but uses UTF-8
+ ///
+ /// Note, the stream is not synchronized with stdio and not affected by std::ios::sync_with_stdio
+ ///
+ extern BOOST_NOWIDE_DECL details::winconsole_ostream cerr;
+ ///
+ /// \brief Same as std::clog, but uses UTF-8
+ ///
+ /// Note, the stream is not synchronized with stdio and not affected by std::ios::sync_with_stdio
+ ///
+ extern BOOST_NOWIDE_DECL details::winconsole_ostream clog;
+
+ #endif
+
+} // nowide
+} // namespace boost
+
+#ifdef BOOST_MSVC
+# pragma warning(pop)
+#endif
+
+
+#endif
+///
+// vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4