blob: 2f0a18cf4574e083d08295c033ded217aed27e39 [file] [log] [blame]
// Test non-type template argument folding.
// Origin: smacdonald@seimac.com
// { dg-do compile }
template < int I1, int I2 >
class unit
{
public:
unit() {}
unit( const unit<I1,I2>& ) {}
template< int Q1, int Q2 >
unit< I1 - Q1, I2 - Q2 > operator / ( const unit< Q1, Q2 >& rhs ) const {
return unit< I1 - Q1, I2 - Q2 >();
}
};
int main()
{
const unit<1,0> u1;
const unit<2,0> u2;
unit<-1,0> u3( u1 / u2 );
}