Szia! Egyrészt az én g++-mal tökéletesen megy ( (3.4.2) mondjuk nem ismeri a -Wold-style-cast -Wstrict-null-sentinel kapcsolókat, de ha azokat kiveszem, warning nélkül lefordul az alábbi kód): template <typename T = double> class Vector { public: Vector& operator*=(double) { return *this; } }; template <typename T> const Vector<T> operator*(const Vector<T>& v, double l) { return Vector<T>(v) *= l; } int main() { Vector<> v1; Vector<double> v4(v1 * 10); return 0; } Csak ott módosítottam, ahol értelemszerűen kell. Rem segít. Másrészt, miért nem használsz valarray-t, amit erre találtak ki?