Commit 1b83352e by Neil Booth Committed by Neil Booth

* g++.old-deja/g++.other/instan2.C

        * g++.old-deja/g++.other/instan3.C: New test.

From-SVN: r37952
parent 84e6f1ba
2000-12-02 Neil Booth <neilb@earthling.net>
* g++.old-deja/g++.other/instan2.C
* g++.old-deja/g++.other/instan3.C: New test.
2000-12-02 Neil Booth <neilb@earthling.net>
* gcc.dg/cpp/c++98.c,c++98-pedantic.c,c89.c,c89-pedantic.c,
c94.c,c94-pedantic.c,c99.c,c99-pedantic.c,gnuc89.c,gnuc89-pedantic.c,
gnuc99.c,gnuc99-pedantic.c: New tests.
......
// Build don't link:
// Origin: Neil Booth, from bug report #44
#include <iterator>
template<class T>
struct X
{
};
template<class T>
X<T> operator+(const X<T>&, const X<T>&);
template<>
X<int> operator+<int>(const X<int>&, const X<int>&);
// Build don't link:
// 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;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment