diff options
author | Eric Fiselier <eric@efcs.ca> | 2016-05-17 21:01:20 +0000 |
---|---|---|
committer | Eric Fiselier <eric@efcs.ca> | 2016-05-17 21:01:20 +0000 |
commit | 6a05b007ff872674883df8067f4a28864cd2f78e (patch) | |
tree | 8752edf845c7a38563d476491ef30caa9eb95c69 /libcxx/test/std/iterators/stream.iterators | |
parent | 0c3a85a327f16ff9068676cfc3b305ce6cc77380 (diff) | |
download | bcm5719-llvm-6a05b007ff872674883df8067f4a28864cd2f78e.tar.gz bcm5719-llvm-6a05b007ff872674883df8067f4a28864cd2f78e.zip |
Test hijacking ADL for operator& in the stream iterator constructors.
llvm-svn: 269838
Diffstat (limited to 'libcxx/test/std/iterators/stream.iterators')
2 files changed, 30 insertions, 3 deletions
diff --git a/libcxx/test/std/iterators/stream.iterators/ostream.iterator/ostream.iterator.cons.des/ostream.pass.cpp b/libcxx/test/std/iterators/stream.iterators/ostream.iterator/ostream.iterator.cons.des/ostream.pass.cpp index 321cfbdb82c..6366355cc10 100644 --- a/libcxx/test/std/iterators/stream.iterators/ostream.iterator/ostream.iterator.cons.des/ostream.pass.cpp +++ b/libcxx/test/std/iterators/stream.iterators/ostream.iterator/ostream.iterator.cons.des/ostream.pass.cpp @@ -17,9 +17,23 @@ #include <sstream> #include <cassert> +struct MyTraits : std::char_traits<char> {}; + +typedef std::basic_ostringstream<char, MyTraits> StringStream; +typedef std::basic_ostream<char, MyTraits> BasicStream; + +void operator&(BasicStream const&) {} + int main() { - std::ostringstream outf; - std::ostream_iterator<int> i(outf); - assert(outf.good()); + { + std::ostringstream outf; + std::ostream_iterator<int> i(outf); + assert(outf.good()); + } + { + StringStream outf; + std::ostream_iterator<int, char, MyTraits> i(outf); + assert(outf.good()); + } } diff --git a/libcxx/test/std/iterators/stream.iterators/ostream.iterator/ostream.iterator.cons.des/ostream_delim.pass.cpp b/libcxx/test/std/iterators/stream.iterators/ostream.iterator/ostream.iterator.cons.des/ostream_delim.pass.cpp index 8e5c771a4ab..69c2dfc9b5f 100644 --- a/libcxx/test/std/iterators/stream.iterators/ostream.iterator/ostream.iterator.cons.des/ostream_delim.pass.cpp +++ b/libcxx/test/std/iterators/stream.iterators/ostream.iterator/ostream.iterator.cons.des/ostream_delim.pass.cpp @@ -17,6 +17,14 @@ #include <sstream> #include <cassert> + +struct MyTraits : std::char_traits<char> {}; + +typedef std::basic_ostringstream<char, MyTraits> StringStream; +typedef std::basic_ostream<char, MyTraits> BasicStream; + +void operator&(BasicStream const&) {} + int main() { { @@ -29,4 +37,9 @@ int main() std::ostream_iterator<double, wchar_t> i(outf, L", "); assert(outf.good()); } + { + StringStream outf; + std::ostream_iterator<int, char, MyTraits> i(outf, ", "); + assert(outf.good()); + } } |