setp.pass.cpp revision f5256e16dfc425c1d466f6308d4026d529ce9e0b
1010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)//===----------------------------------------------------------------------===//
2010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)//
3010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)//                     The LLVM Compiler Infrastructure
4010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)//
5010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)// This file is distributed under the University of Illinois Open Source
6010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)// License. See LICENSE.TXT for details.
75f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)//
85f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)//===----------------------------------------------------------------------===//
95f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
101320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// <streambuf>
11010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
12010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)// template <class charT, class traits = char_traits<charT> >
13116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// class basic_streambuf;
14010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
15010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)// void setp(char_type* pbeg, char_type* pend);
16010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
17010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)#include <streambuf>
18010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)#include <cassert>
19010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
20010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)template <class CharT>
21010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)struct test
22010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    : public std::basic_streambuf<CharT>
23010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles){
24010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    typedef std::basic_streambuf<CharT> base;
25010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
26010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    test() {}
27010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
28010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    void setp(CharT* pbeg, CharT* pend)
29010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    {
30010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)        base::setp(pbeg, pend);
31010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)        assert(base::pbase() == pbeg);
32010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)        assert(base::pptr() == pbeg);
33010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)        assert(base::epptr() == pend);
34010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    }
35010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)};
36010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
37010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)int main()
38010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles){
39010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    {
401320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci        test<char> t;
411320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci        char in[] = "ABC";
421320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci        t.setp(in, in+sizeof(in)/sizeof(in[0]));
431320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    }
44010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    {
45010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)        test<wchar_t> t;
46010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)        wchar_t in[] = L"ABC";
47010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)        t.setp(in, in+sizeof(in)/sizeof(in[0]));
48010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)    }
49010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)}
50010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)