cpp-ru / ideas

Идеи по улучшению языка C++ для обсуждения
https://cpp-ru.github.io/proposals
Creative Commons Zero v1.0 Universal
89 stars 0 forks source link

Однократный вызов кода (как создание static переменных) #579

Open IvanK-work opened 9 months ago

IvanK-work commented 9 months ago

Если мы можем сказать компилятору - "создай эту переменную только один раз, как только мы дошли до этого места", почему бы на не сказать ему - "выполни этот код один раз, как только мы дошли до этого места".

До:

bool is_call_first_time=true;
void foo()
{
   if(is_call_first_time)
   {
       // code...
      is_call_first_time = false;
   }
....
....

}

После:

void foo()
{
  static{
       // code...
   };
....
....
}
sergii-rybin-tfs commented 9 months ago

std::call_once ? https://en.cppreference.com/w/cpp/thread/call_once