1 // { dg-additional-options -fmodule-header }
2 // { dg-module-cmi {} }
3 
4 template<typename _CharT> class istreambuf_iterator;
5 
6 void move(char __t);
7 void move(istreambuf_iterator<char> &__u);
8 
9 template<typename _Tp> struct allocator {};
10 
11 template<typename _Alloc> struct __alloc_traits
12 {
_S_on_swap__alloc_traits13   static void _S_on_swap(_Alloc& __b)
14   {
15     move (__b);
16   }
17 
18   typedef allocator<char> other;
19 };
20 
21 template<typename _CharT> class basic_string
22 {
23   typedef __alloc_traits<char>::other _Char_alloc_type;
24 };
25 
26 template<typename _CharT> class istreambuf_iterator
27 {
28   void frob (const basic_string<char>& __s);
29 };
30