1 // PR 99039, we need to remove the namespace-scope meaning of
2 // IDENTIFIER_TYPE_VALUE.
3 
4 namespace std
5 {
6 typedef long unsigned int size_t;
7 
8 template<typename _CharT>
9 struct char_traits
10 {
11   typedef _CharT char_type;
12 
13   template<typename U>
14   static int
15     compare(const char_type* __s1, const char_type* __s2, std::size_t __n);
16 };
17 
18 template<typename _CharT>
19 template<typename U>
20 int
21 char_traits<_CharT>::
compare(const char_type * __s1,const char_type * __s2,std::size_t __n)22 compare(const char_type* __s1, const char_type* __s2, std::size_t __n)
23 {
24   return 0;
25 }
26 
27 }
28 
29 struct CHAR_TRAITS;
30 namespace std
31 {
32 typedef long unsigned int size_t;
33 
34 struct CHAR_TRAITS
35 {
36   typedef char char_type;
37 
38   static int
39     compare(const char_type* __s1, const char_type* __s2, std::size_t __n);
40 };
41 
42 int
43 CHAR_TRAITS::
compare(const char_type * __s1,const char_type * __s2,std::size_t __n)44 compare(const char_type* __s1, const char_type* __s2, std::size_t __n)
45 {
46   return 0;
47 }
48 
49 }
50 
51 struct CHAR_TRAITS;
52