Fix building NativeFileStream with libc++

Note: std::iostream has no default c'tor according to
the standard (although a protected default c'tor is
provided by libstdc++).
This commit is contained in:
Martchus 2018-10-07 19:13:57 +02:00
parent 8e32fc0229
commit 7b04bd8ef5
2 changed files with 6 additions and 4 deletions

View File

@ -132,19 +132,19 @@ struct NativeFileParams {
* \brief Constructs a new NativeFileStream which is initially closed. * \brief Constructs a new NativeFileStream which is initially closed.
*/ */
NativeFileStream::NativeFileStream() NativeFileStream::NativeFileStream()
: m_filebuf(make_unique<StreamBuffer>()) : iostream(new StreamBuffer)
, m_filebuf(rdbuf())
{ {
init(m_filebuf.get());
} }
/*! /*!
* \brief Moves the NativeFileStream. * \brief Moves the NativeFileStream.
*/ */
NativeFileStream::NativeFileStream(NativeFileStream &&other) NativeFileStream::NativeFileStream(NativeFileStream &&other)
: m_filebuf(std::move(other.m_filebuf)) : iostream(other.m_filebuf.release())
, m_filebuf(rdbuf())
, m_fileHandle(other.m_fileHandle) , m_fileHandle(other.m_fileHandle)
{ {
init(m_filebuf.get());
} }
/*! /*!

View File

@ -44,11 +44,13 @@ private:
}; };
inline NativeFileStream::NativeFileStream(const std::string &path, ios_base::openmode openMode) inline NativeFileStream::NativeFileStream(const std::string &path, ios_base::openmode openMode)
: NativeFileStream()
{ {
open(path, openMode); open(path, openMode);
} }
inline NativeFileStream::NativeFileStream(int fileDescriptor, ios_base::openmode openMode) inline NativeFileStream::NativeFileStream(int fileDescriptor, ios_base::openmode openMode)
: NativeFileStream()
{ {
openFromFileDescriptor(fileDescriptor, openMode); openFromFileDescriptor(fileDescriptor, openMode);
} }