|
|
|
#1 |
|
Messages: n/a
Hébergeur: |
This is just out of curiosity...
There are a couple ways to make sure a function gets called only once. Let's say I have a function that gets called several times, called LoopedFunc() and I have another function called Init() which I only want to run once... then I can do LoopedFunc() { static bool initialized = false; if(!initialized) { Init(); initialized = true; } } or...I can make my Init() function return a boolean and then go LoopedFunc() { static bool this_variable_is_never_used = Init(); } The second way only requires one line...but still requires a pretty useless variable, and forces you to put a return on your Init function. Shouldn't there be a way to do something like LoopedFunc() { static Init(); } or something?? |
|
|
|
#2 |
|
Messages: n/a
Hébergeur: |
On Dec 27, 10:21 pm, Mark <mnbaya...@gmail.com> wrote:
> This is just out of curiosity... > > There are a couple ways to make sure a function gets called only once. > Let's say I have a function that gets called several times, called > LoopedFunc() and I have another function called Init() which I only > want to run once... then I can do > > LoopedFunc() > { > static bool initialized = false; > if(!initialized) { > Init(); > initialized = true; > } > > } > > or...I can make my Init() function return a boolean and then go > > LoopedFunc() > { > static bool this_variable_is_never_used = Init(); > > } > > The second way only requires one line...but still requires a pretty > useless variable, and forces you to put a return on your Init > function. > > Shouldn't there be a way to do something like > > LoopedFunc() > { > static Init(); > > } > > or something?? A crude way of doing it could be... class Init { public: Init(); }; LoopedFunc() { static Init init; } Thanks and regards Sonison James |
|
|
|
#3 |
|
Messages: n/a
Hébergeur: |
On Dec 27, 11:57 pm, sonison.ja...@gmail.com wrote:
> On Dec 27, 10:21 pm, Mark <mnbaya...@gmail.com> wrote: > > > > > This is just out of curiosity... > > > There are a couple ways to make sure a function gets called only once. > > Let's say I have a function that gets called several times, called > > LoopedFunc() and I have another function called Init() which I only > > want to run once... then I can do > > > LoopedFunc() > > { > > static bool initialized = false; > > if(!initialized) { > > Init(); > > initialized = true; > > } > > > } > > > or...I can make my Init() function return a boolean and then go > > > LoopedFunc() > > { > > static bool this_variable_is_never_used = Init(); > > > } > > > The second way only requires one line...but still requires a pretty > > useless variable, and forces you to put a return on your Init > > function. > > > Shouldn't there be a way to do something like > > > LoopedFunc() > > { > > static Init(); > > > } > > > or something?? > > A crude way of doing it could be... > > class Init > { > public: > Init(); > > }; > > LoopedFunc() > { > static Init init; > > } > > Thanks and regards > Sonison James Ahh..that's even worse in my books :p Oh well. I was just wondering. |
|
![]() |
| Outils de la discussion | |
|
|