Author: ericwf Date: Tue May 17 16:01:20 2016 New Revision: 269838 URL: http://llvm.org/viewvc/llvm-project?rev=269838&view=rev Log: Test hijacking ADL for operator& in the stream iterator constructors.
Modified: libcxx/trunk/test/std/iterators/stream.iterators/ostream.iterator/ostream.iterator.cons.des/ostream.pass.cpp libcxx/trunk/test/std/iterators/stream.iterators/ostream.iterator/ostream.iterator.cons.des/ostream_delim.pass.cpp Modified: libcxx/trunk/test/std/iterators/stream.iterators/ostream.iterator/ostream.iterator.cons.des/ostream.pass.cpp URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/iterators/stream.iterators/ostream.iterator/ostream.iterator.cons.des/ostream.pass.cpp?rev=269838&r1=269837&r2=269838&view=diff ============================================================================== --- libcxx/trunk/test/std/iterators/stream.iterators/ostream.iterator/ostream.iterator.cons.des/ostream.pass.cpp (original) +++ libcxx/trunk/test/std/iterators/stream.iterators/ostream.iterator/ostream.iterator.cons.des/ostream.pass.cpp Tue May 17 16:01:20 2016 @@ -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()); + } } Modified: libcxx/trunk/test/std/iterators/stream.iterators/ostream.iterator/ostream.iterator.cons.des/ostream_delim.pass.cpp URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/iterators/stream.iterators/ostream.iterator/ostream.iterator.cons.des/ostream_delim.pass.cpp?rev=269838&r1=269837&r2=269838&view=diff ============================================================================== --- libcxx/trunk/test/std/iterators/stream.iterators/ostream.iterator/ostream.iterator.cons.des/ostream_delim.pass.cpp (original) +++ libcxx/trunk/test/std/iterators/stream.iterators/ostream.iterator/ostream.iterator.cons.des/ostream_delim.pass.cpp Tue May 17 16:01:20 2016 @@ -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()); + } } _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits