メンバ変数の初期化順序なんですが

class A
{
public:
A(int a) : a_(a), b_(a*2), c_(b_*2) {}

const inta_, b_;
const intc_;
};

だと意図通りに初期化がされるのですが、c_の宣言をa_, b_の前に持ってくるとc_の値がおかしくなります。
初期化順が、コンストラクタの : 以降(イニシャライザって言うんでしたっけ?)の初期化順に関係なく
宣言順に依存しているからだと思うのですが、これは規格で決められているのでしょうか?