Quick A: std::call_once
.
Recently on StackOverflow:
Standard library function for running a function only once
Is there some standard library function/class the behaviour of this lambda expression:
void some_func(int some_arg, float some_other_arg){ static int do_once = ([](){ // will be run once upon first function call but never again return 0; // dummy return value })(); // will always run }t feels like such a hack to write this, but I can't think of another way of doing this other than simply calling the function in
main
, but what I'm actually doing depends upon template parameters and I need to keep it as generic as possible.For context: I register a function with
atexit
for every different template parameter, but only once: the first time it is called.
Add a Comment
Comments are closed.