「=演算子はどう解釈される?」から。
自己初期化の問題は、『C++プログラミングの処方箋』の鉄則21で取り上げられています。
C++では、初期化子が解釈される前に変数の名前が有効になります。
int var = 12;
{
double var = var;
変数varの値は?
自信のない方は、『C++プログラミングの処方箋』を読んでみてはいかがでしょうか。
鉄則21では、自己初期化の問題で陥りやすい落とし穴について解説されています。
ちなみに、変数varの値は不定値になります。
以下のコードは、C++Builder2007ではコンパイルできました。
time_t now( time( &now ) );
time_t t( time( &t ) );