Remove old autovect-branch by moving to "dead" directory.
[official-gcc.git] / old-autovect-branch / gcc / testsuite / g++.old-deja / g++.pt / instantiate11.C
blob6832d1760578344d04230ebd62fe0fa4c228a55f
1 // { dg-do assemble  }
2 // Origin: Neil Booth, from bug report #36
4 template <typename t> class vect;
5 template <typename t> vect<t> operator-( const vect<t>&, const vect<t>& );
7 template <typename t>
8 class vect
10 public:
11   vect( t a );
13   vect( const vect<t>& v );
14   ~vect();
16   vect<t>& operator=( const vect<t>& v );
17   vect<t>  operator-( void ) const;
18   friend vect<t> (::operator- <>)( const vect<t>&, const vect<t>& );
20 private:
21   t a_;
24 template <typename t> inline
25 vect<t>::vect( t a )
26 : a_(a)
30 template <typename t> inline
31 vect<t>::vect( const vect<t>& v )
32 : a_(v.a_)
36 template <typename t> inline
37 vect<t>::~vect()
41 template <typename t> inline vect<t>& 
42 vect<t>::operator=( const vect<t>& v )
44    a_ = v.a_;
45    return *this;
48 template <typename t> inline vect<t>
49 vect<t>::operator-( void ) const
51   return vect<t>( -a_ );
54 template <typename t> inline vect<t>
55 operator-( const vect<t>& u, const vect<t>& v )
57   return vect<t>( u.a_ - v.a_ );
60 int
61 main( void )
63   vect<double> a( 1.0 ), b( 0.0 );
64   b = -a;