Implement P0004R1 'Remove Deprecated iostreams aliases'

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@251618 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Marshall Clow
2015-10-29 05:43:30 +00:00
parent 0cff2318f5
commit 8aadda9a19
7 changed files with 35 additions and 7 deletions

View File

@@ -114,9 +114,9 @@ class basic_ios
public: public:
// types: // types:
typedef charT char_type; typedef charT char_type;
typedef typename traits::int_type int_type; typedef typename traits::int_type int_type; // removed in C++17
typedef typename traits::pos_type pos_type; typedef typename traits::pos_type pos_type; // removed in C++17
typedef typename traits::off_type off_type; typedef typename traits::off_type off_type; // removed in C++17
typedef traits traits_type; typedef traits traits_type;
operator unspecified-bool-type() const; operator unspecified-bool-type() const;
@@ -254,14 +254,12 @@ public:
static const fmtflags floatfield = scientific | fixed; static const fmtflags floatfield = scientific | fixed;
typedef unsigned int iostate; typedef unsigned int iostate;
typedef iostate io_state;
static const iostate badbit = 0x1; static const iostate badbit = 0x1;
static const iostate eofbit = 0x2; static const iostate eofbit = 0x2;
static const iostate failbit = 0x4; static const iostate failbit = 0x4;
static const iostate goodbit = 0x0; static const iostate goodbit = 0x0;
typedef unsigned int openmode; typedef unsigned int openmode;
typedef openmode open_mode;
static const openmode app = 0x01; static const openmode app = 0x01;
static const openmode ate = 0x02; static const openmode ate = 0x02;
static const openmode binary = 0x04; static const openmode binary = 0x04;
@@ -270,10 +268,15 @@ public:
static const openmode trunc = 0x20; static const openmode trunc = 0x20;
enum seekdir {beg, cur, end}; enum seekdir {beg, cur, end};
typedef seekdir seek_dir;
#if _LIBCPP_STD_VER <= 14
typedef iostate io_state;
typedef openmode open_mode;
typedef seekdir seek_dir;
typedef _VSTD::streamoff streamoff; typedef _VSTD::streamoff streamoff;
typedef _VSTD::streampos streampos; typedef _VSTD::streampos streampos;
#endif
class _LIBCPP_TYPE_VIS Init; class _LIBCPP_TYPE_VIS Init;

View File

@@ -15,11 +15,16 @@
// typedef T1 io_state; // typedef T1 io_state;
// }; // };
// These members were removed for C++17
#include "test_macros.h"
#include <strstream> #include <strstream>
#include <cassert> #include <cassert>
int main() int main()
{ {
#if TEST_STD_VER <= 14
std::strstream::io_state b = std::strstream::eofbit; std::strstream::io_state b = std::strstream::eofbit;
assert(b == std::ios::eofbit); assert(b == std::ios::eofbit);
#endif
} }

View File

@@ -15,11 +15,16 @@
// typedef T2 open_mode; // typedef T2 open_mode;
// }; // };
// These members were removed for C++17
#include "test_macros.h"
#include <strstream> #include <strstream>
#include <cassert> #include <cassert>
int main() int main()
{ {
#if TEST_STD_VER <= 14
std::strstream::open_mode b = std::strstream::app; std::strstream::open_mode b = std::strstream::app;
assert(b == std::ios::app); assert(b == std::ios::app);
#endif
} }

View File

@@ -15,11 +15,16 @@
// typedef T3 seek_dir; // typedef T3 seek_dir;
// }; // };
// These members were removed for C++17
#include "test_macros.h"
#include <strstream> #include <strstream>
#include <cassert> #include <cassert>
int main() int main()
{ {
#if TEST_STD_VER <= 14
std::strstream::seek_dir b = std::strstream::cur; std::strstream::seek_dir b = std::strstream::cur;
assert(b == std::ios::cur); assert(b == std::ios::cur);
#endif
} }

View File

@@ -15,11 +15,16 @@
// typedef OFF_T streamoff; // typedef OFF_T streamoff;
// }; // };
// These members were removed for C++17
#include "test_macros.h"
#include <ios> #include <ios>
#include <type_traits> #include <type_traits>
int main() int main()
{ {
#if TEST_STD_VER <= 14
static_assert((std::is_integral<std::ios_base::streamoff>::value), ""); static_assert((std::is_integral<std::ios_base::streamoff>::value), "");
static_assert((std::is_signed<std::ios_base::streamoff>::value), ""); static_assert((std::is_signed<std::ios_base::streamoff>::value), "");
#endif
} }

View File

@@ -15,10 +15,15 @@
// typedef POS_T streampos; // typedef POS_T streampos;
// }; // };
// These members were removed for C++17
#include "test_macros.h"
#include <ios> #include <ios>
#include <type_traits> #include <type_traits>
int main() int main()
{ {
#if TEST_STD_VER <= 14
static_assert((std::is_same<std::ios_base::streampos, std::streampos>::value), ""); static_assert((std::is_same<std::ios_base::streampos, std::streampos>::value), "");
#endif
} }

View File

@@ -70,7 +70,7 @@
<tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4366">N4366</a></td><td>LWG</td></td><td>LWG 2228 missing SFINAE rule</td><td>Lenexa</td><td>Complete</td><td>3.1</td></tr> <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4366">N4366</a></td><td>LWG</td></td><td>LWG 2228 missing SFINAE rule</td><td>Lenexa</td><td>Complete</td><td>3.1</td></tr>
<tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4510">N4510</a></td><td>LWG</td></td><td>Minimal incomplete type support for standard containers, revision 4</td><td>Lenexa</td><td>Complete</td><td>3.6</td></tr> <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4510">N4510</a></td><td>LWG</td></td><td>Minimal incomplete type support for standard containers, revision 4</td><td>Lenexa</td><td>Complete</td><td>3.6</td></tr>
<tr><td></td><td></td><td></td><td></td><td></td><td></td></tr> <tr><td></td><td></td><td></td><td></td><td></td><td></td></tr>
<tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/P0004R1.html">P0004R1</a></td><td>LWG</td><td>Remove Deprecated iostreams aliases.</td><td>Kona</td><td></td><td></td></tr> <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/P0004R1.html">P0004R1</a></td><td>LWG</td><td>Remove Deprecated iostreams aliases.</td><td>Kona</td><td>Complete</td><td>3.8</td></tr>
<tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/P0006R0.html">P0006R0</a></td><td>LWG</td><td>Adopt Type Traits Variable Templates for C++17.</td><td>Kona</td><td>In progress</td><td></td></tr> <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/P0006R0.html">P0006R0</a></td><td>LWG</td><td>Adopt Type Traits Variable Templates for C++17.</td><td>Kona</td><td>In progress</td><td></td></tr>
<tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/P0092R1.html">P0092R1</a></td><td>LWG</td><td>Polishing &lt;chrono&gt;</td><td>Kona</td><td></td><td></td></tr> <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/P0092R1.html">P0092R1</a></td><td>LWG</td><td>Polishing &lt;chrono&gt;</td><td>Kona</td><td></td><td></td></tr>
<tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/P0007R1.html">P0007R1</a></td><td>LWG</td><td>Constant View: A proposal for a <tt>std::as_const</tt> helper function template.</td><td>Kona</td><td>In progress</td><td></td></tr> <tr><td><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/P0007R1.html">P0007R1</a></td><td>LWG</td><td>Constant View: A proposal for a <tt>std::as_const</tt> helper function template.</td><td>Kona</td><td>In progress</td><td></td></tr>