Ensure <experimental/iterator> includes <iterator>

* include/experimental/iterator: Include <iterator>.
	* testsuite/experimental/iterator/requirements.cc: Check for contents
	of <iterator>.

From-SVN: r245686
This commit is contained in:
Jonathan Wakely 2017-02-23 18:25:22 +00:00 committed by Jonathan Wakely
parent 17885cad6a
commit cb701078b1
3 changed files with 19 additions and 4 deletions

View File

@ -1,3 +1,9 @@
2017-02-23 Jonathan Wakely <jwakely@redhat.com>
* include/experimental/iterator: Include <iterator>.
* testsuite/experimental/iterator/requirements.cc: Check for contents
of <iterator>.
2017-02-19 Dinka Ranns <dinka.ranns@googlemail.com> 2017-02-19 Dinka Ranns <dinka.ranns@googlemail.com>
C++17 GB50 resolution C++17 GB50 resolution

View File

@ -39,10 +39,9 @@
# include <bits/c++14_warning.h> # include <bits/c++14_warning.h>
#else #else
#include <experimental/type_traits> #include <iterator>
#include <iosfwd> #include <iosfwd>
#include <bits/move.h> #include <experimental/type_traits>
#include <bits/stl_iterator_base_types.h>
namespace std _GLIBCXX_VISIBILITY(default) namespace std _GLIBCXX_VISIBILITY(default)
{ {

View File

@ -19,7 +19,7 @@
// This is a compile-only test with minimal includes // This is a compile-only test with minimal includes
#include <experimental/iterator> #include <experimental/iterator>
#include <iosfwd> #include <iosfwd> // No guarantee that <experimental/iterator> includes this!
using namespace std::experimental; using namespace std::experimental;
@ -55,3 +55,13 @@ tester<int, char> ic;
tester<wchar_t, wchar_t> ww; tester<wchar_t, wchar_t> ww;
tester<int, wchar_t> iw; tester<int, wchar_t> iw;
#endif #endif
std::ostream& os();
// Ensure that contents of <iterator> are defined by <experimental/iterator>:
std::reverse_iterator<int*> ii;
std::move_iterator<int*> mi;
std::istream_iterator<int> isi;
std::ostream_iterator<int> osi(os());
std::istreambuf_iterator<char> isbi;
std::ostreambuf_iterator<char> osbi(os());