5.2.4 L'opérateur de multiplication

L'opérateur de multiplication :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
template <class A>
class PTimesExpr : public PExprGen<PTimesExpr<A> >{
	const A& p_a;
	const double p_b;
	public:
		PTimesExpr(const A& a, double b) : p_a(a), p_b(b){}
		double operator[](size_t i) const{
			return p_a[i]*p_b;
		}
};

template <class A>
inline PTimesExpr<A> operator* (const PExprGen<A>& a, double b){
	return PTimesExpr<A>(a,b);
}

template <class A>
inline PTimesExpr<A> operator* (double b, const PExprGen<A>& a){
	return PTimesExpr<A>(a,b);
}