标准库函数,仅运行一次函数

CoffeeandCode

是否有一些标准的库函数/类对此lambda表达式的行为进行了处理:

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
}

编写此代码感觉很hack,但是除了简单地调用in中的函数外,我想不出另一种方法main,但是我实际上在做什么取决于模板参数,因此我需要保持其通用性。可能。

对于上下文:
atexit为每个不同的模板参数注册了一个函数,但只注册了一次:第一次调用该函数。

基罗卡斯

也许您应该使用中的std::call_oncefind <mutex>此处
如何使用示例

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章