mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-03-08 22:07:38 +08:00
* g++.old-deja/g++.other/instan2.C
* g++.old-deja/g++.other/instan3.C: New test. From-SVN: r37952
This commit is contained in:
parent
84e6f1ba38
commit
1b83352ef7
@ -1,3 +1,8 @@
|
||||
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,
|
||||
|
15
gcc/testsuite/g++.old-deja/g++.other/instan2.C
Normal file
15
gcc/testsuite/g++.old-deja/g++.other/instan2.C
Normal file
@ -0,0 +1,15 @@
|
||||
// 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>&);
|
65
gcc/testsuite/g++.old-deja/g++.other/instan3.C
Normal file
65
gcc/testsuite/g++.old-deja/g++.other/instan3.C
Normal file
@ -0,0 +1,65 @@
|
||||
// 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;
|
||||
}
|
Loading…
Reference in New Issue
Block a user