ios_base.pass.cpp revision 72215c2dbf0bbff4ad9f73879d346be95facdd83
1064c636d364fab601a908e040d3aa5eaf2775694Jens Axboe//===----------------------------------------------------------------------===//
2064c636d364fab601a908e040d3aa5eaf2775694Jens Axboe//
3064c636d364fab601a908e040d3aa5eaf2775694Jens Axboe//                     The LLVM Compiler Infrastructure
40ce8b119b65849e537cab628a176a0ec4238aab0Jens Axboe//
5064c636d364fab601a908e040d3aa5eaf2775694Jens Axboe// This file is distributed under the University of Illinois Open Source
60917444531866c9facb0f731eff5e4e28c7c65d3Jens Axboe// License. See LICENSE.TXT for details.
7064c636d364fab601a908e040d3aa5eaf2775694Jens Axboe//
80ce8b119b65849e537cab628a176a0ec4238aab0Jens Axboe//===----------------------------------------------------------------------===//
90ce8b119b65849e537cab628a176a0ec4238aab0Jens Axboe
100ce8b119b65849e537cab628a176a0ec4238aab0Jens Axboe// <istream>
110ce8b119b65849e537cab628a176a0ec4238aab0Jens Axboe
120ce8b119b65849e537cab628a176a0ec4238aab0Jens Axboe// template <class charT, class traits = char_traits<charT> >
130ce8b119b65849e537cab628a176a0ec4238aab0Jens Axboe//   class basic_istream;
14064c636d364fab601a908e040d3aa5eaf2775694Jens Axboe
15064c636d364fab601a908e040d3aa5eaf2775694Jens Axboe// basic_istream<charT,traits>& operator>>(ios_base& (*pf)(ios_base&));
16064c636d364fab601a908e040d3aa5eaf2775694Jens Axboe
17064c636d364fab601a908e040d3aa5eaf2775694Jens Axboe#include <istream>
18064c636d364fab601a908e040d3aa5eaf2775694Jens Axboe#include <cassert>
19064c636d364fab601a908e040d3aa5eaf2775694Jens Axboe
20064c636d364fab601a908e040d3aa5eaf2775694Jens Axboeint f_called = 0;
21064c636d364fab601a908e040d3aa5eaf2775694Jens Axboe
22064c636d364fab601a908e040d3aa5eaf2775694Jens Axboestd::ios_base&
23064c636d364fab601a908e040d3aa5eaf2775694Jens Axboef(std::ios_base& is)
24064c636d364fab601a908e040d3aa5eaf2775694Jens Axboe{
25064c636d364fab601a908e040d3aa5eaf2775694Jens Axboe    ++f_called;
26064c636d364fab601a908e040d3aa5eaf2775694Jens Axboe    return is;
27064c636d364fab601a908e040d3aa5eaf2775694Jens Axboe}
28064c636d364fab601a908e040d3aa5eaf2775694Jens Axboe
29064c636d364fab601a908e040d3aa5eaf2775694Jens Axboeint main()
30064c636d364fab601a908e040d3aa5eaf2775694Jens Axboe{
31064c636d364fab601a908e040d3aa5eaf2775694Jens Axboe    {
32064c636d364fab601a908e040d3aa5eaf2775694Jens Axboe        std::istream is((std::streambuf*)0);
33064c636d364fab601a908e040d3aa5eaf2775694Jens Axboe        is >> f;
34064c636d364fab601a908e040d3aa5eaf2775694Jens Axboe        assert(f_called == 1);
35064c636d364fab601a908e040d3aa5eaf2775694Jens Axboe    }
36064c636d364fab601a908e040d3aa5eaf2775694Jens Axboe}
37064c636d364fab601a908e040d3aa5eaf2775694Jens Axboe