diff options
author | Karen Arutyunov <karen@codesynthesis.com> | 2017-04-19 02:34:14 +0300 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2017-04-19 04:18:53 +0200 |
commit | ec76db9e858357686885cd078e39350f66adcc9f (patch) | |
tree | d8f4d6b942782cac1764ba2f8e2528d04e5d2c3f /butl | |
parent | bab5f9b799e5b64c59ad9c78070a4254fe9ceeab (diff) |
Reorder inline functions to keep MinGW GCC happy (export)
Diffstat (limited to 'butl')
-rw-r--r-- | butl/fdstream | 6 | ||||
-rw-r--r-- | butl/fdstream.ixx | 23 |
2 files changed, 26 insertions, 3 deletions
diff --git a/butl/fdstream b/butl/fdstream index df6b3f1..afc3ef6 100644 --- a/butl/fdstream +++ b/butl/fdstream @@ -110,7 +110,7 @@ namespace butl close () {fd_.close ();} auto_fd - release () {return std::move (fd_);} + release (); void open (auto_fd&&); @@ -380,7 +380,7 @@ namespace butl open (auto_fd&& fd) {buf_.open (std::move (fd)); clear ();} void close (); - auto_fd release () {return buf_.release ();} // Note: no skipping. + auto_fd release (); // Note: no skipping. bool is_open () const {return buf_.is_open ();} private: @@ -458,7 +458,7 @@ namespace butl open (auto_fd&& fd) {buf_.open (std::move (fd)); clear ();} void close () {if (is_open ()) flush (); buf_.close ();} - auto_fd release () {if (is_open ()) flush (); return buf_.release ();} + auto_fd release (); bool is_open () const {return buf_.is_open ();} }; diff --git a/butl/fdstream.ixx b/butl/fdstream.ixx index 0d3d098..884d190 100644 --- a/butl/fdstream.ixx +++ b/butl/fdstream.ixx @@ -30,6 +30,14 @@ namespace butl reset (); } + // fdbuf + // + inline auto_fd fdbuf:: + release () + { + return std::move (fd_); + } + // ifdstream // inline ifdstream:: @@ -104,6 +112,12 @@ namespace butl open (f.string (), m); } + inline auto_fd ifdstream:: + release () + { + return buf_.release (); + } + // ofdstream // inline ofdstream:: @@ -176,6 +190,15 @@ namespace butl open (f.string (), m); } + inline auto_fd ofdstream:: + release () + { + if (is_open ()) + flush (); + + return buf_.release (); + } + // fdopen() // inline auto_fd |