OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-old/] [gcc-4.2.2/] [gcc/] [testsuite/] [g++.old-deja/] [g++.pt/] [instantiate11.C] - Rev 853

Go to most recent revision | Compare with Previous | Blame | View Log

// { dg-do assemble  }
// Origin: Neil Booth, from bug report #36

template <typename t> class vect;
template <typename t> vect<t> operator-( const vect<t>&, const vect<t>& );

template <typename t>
class vect
{
public:
  vect( t a );

  vect( const vect<t>& v );
  ~vect();

  vect<t>& operator=( const vect<t>& v );
  vect<t>  operator-( void ) const;
  friend vect<t> (::operator- <>)( const vect<t>&, const vect<t>& );

private:
  t a_;
};

template <typename t> inline
vect<t>::vect( t a )
: a_(a)
{
}

template <typename t> inline
vect<t>::vect( const vect<t>& v )
: a_(v.a_)
{
}

template <typename t> inline
vect<t>::~vect()
{
}

template <typename t> inline vect<t>& 
vect<t>::operator=( const vect<t>& v )
{
   a_ = v.a_;
   return *this;
}

template <typename t> inline vect<t>
vect<t>::operator-( void ) const
{
  return vect<t>( -a_ );
}

template <typename t> inline vect<t>
operator-( const vect<t>& u, const vect<t>& v )
{
  return vect<t>( u.a_ - v.a_ );
}

int
main( void )
{
  vect<double> a( 1.0 ), b( 0.0 );
  b = -a;
}

Go to most recent revision | Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.