55 lines
1.4 KiB
C
55 lines
1.4 KiB
C
// { dg-do assemble }
|
|
//980519 bad error from nathan
|
|
//$ egcs -fhonor-std -nostdinc -c redef.C
|
|
//redef.C:56: redefinition of default argument for `class _Traits'
|
|
|
|
template<class _CharT> struct char_traits;
|
|
template<class _CharT> struct char_traits { };
|
|
template<> struct char_traits<char>;
|
|
template<> struct char_traits<char> { };
|
|
|
|
template<class _CharT, class _Traits = char_traits<_CharT> > class istreambuf_iterator;
|
|
|
|
|
|
template<class _CharT, class _Traits>
|
|
class istreambuf_iterator
|
|
{
|
|
public:
|
|
typedef _Traits traits_type;
|
|
class _Proxy;
|
|
public:
|
|
inline istreambuf_iterator() throw();
|
|
inline istreambuf_iterator(const _Proxy& __p) throw();
|
|
};
|
|
|
|
|
|
template <class _CharT, class _Traits>
|
|
class istreambuf_iterator<_CharT,_Traits>::_Proxy
|
|
{
|
|
public:
|
|
_CharT operator*();
|
|
|
|
//bug -g++ w/ decl "redef", no decl no prob.
|
|
//ok -edg: no warnings
|
|
friend class istreambuf_iterator; // XXX OK?
|
|
|
|
//bug -g++ w/ decl "redef", no decl no prob.
|
|
//ok -edg: no warnings
|
|
//friend class istreambuf_iterator<_CharT,_Traits>;
|
|
|
|
//bug -g++ w/ decl "redef", no decl no prob.
|
|
//ok -edg: declaration of "_CharT" and "_Traits" hides template parameter
|
|
//template <class _CharT, class _Traits> friend class istreambuf_iterator;
|
|
|
|
//ok -g++
|
|
//ok -edg
|
|
//friend class istreambuf_iterator<_CharT>;
|
|
|
|
};
|
|
|
|
|
|
|
|
//explicit instantiation of a nested class
|
|
template class istreambuf_iterator<char, char_traits<char> >::_Proxy;
|
|
|