GCC3.2の複素数に関して質問させてください.

#include <complex>
#include <iostream>

using namespace std;

int main()
{
complex<double> a;
int b;

a=complex< double >(0,1);
b=2;

cout << a*b << endl;

}

としたところ,

testcomplex.cc: In function `int main()':
testcomplex.cc:14: no match for `std::complex<double>& * int&' operator

と怒られてしまいました.
RedHat7.3のGCC(2.96?)では問題なかったのですが.これを解決するにはキャストするか,自分で演算子を定義しなおすしかないのでしょうか.