Я заметил, что если вы инициализируете статическую переменную в С++ в коде, инициализация запускается только при первом запуске функции.
Это круто, но как это реализовано? Переводит ли это на какое-то извращенное утверждение if? (если задано значение, то..)
void go( int x )
{
static int j = x ;
cout << ++j << endl ; // see 6, 7, 8
}
int main()
{
go( 5 ) ;
go( 5 ) ;
go( 5 ) ;
}