不使用辅助函数来存储模板函数的静态变量的替代方案是什么?
创始人
2024-12-28 18:00:33
0

使用C++11引入的局部静态变量来存储模板函数的静态变量。每个模板实例都将获得其自己的静态变量副本,而无需使用辅助函数。

示例代码:

template 
void do_something(T val) {
    static std::map& counter = []() -> std::map& {
        static std::map counter;
        return counter;
    }();
    ++counter[val];
    std::cout << "val: " << val << ", count: " << counter[val] << std::endl;
}

int main() {
    do_something(1);
    do_something(2);
    do_something(1);
    do_something(3);
    return 0;
}

以上代码中,counter变量是模板函数do_something的静态变量,类型为std::map,它被定义为一个包含lambda表达式的静态变量。该lambda表达式返回一个引用,该引用初始化为一个静态局部变量counter。 在每个调用模板函数do_something的实例时,都将访问其自己的静态变量副本。 在示例中,输出结果为:

val: 1, count: 1
val: 2, count: 1
val: 1, count: 2
val: 3, count: 1

相关内容

热门资讯

透视科技!wepoker怎么开... 透视科技!wepoker怎么开辅助,WePoKer辅助器(本来真的有挂);1、让任何用户在无需wep...
透视教程!wepoker好友局... 透视教程!wepoker好友局透视,wepoker怎么设置房间(真是真的有挂)1、游戏颠覆性的策略玩...
透视辅助!wepoker私人局... 透视辅助!wepoker私人局透视方法,we-poker辅助(都是真的是有挂)1、金币登录送、破产送...
透视挂!wepoker破解是真... 透视挂!wepoker破解是真的还是假的,wepoker透视脚本免费(总是有挂)1、任何wepoke...
透视ai代打!wepokerp... 透视ai代打!wepokerplus透视脚本免费,we-poker辅助软件教程(本来真的有挂)暗藏猫...
透视了解!wepoker有没有... 透视了解!wepoker有没有辅助,wejoker辅助器怎么卖(一贯有挂)1、进入到wejoker辅...
透视能赢!购买wepoker模... 透视能赢!购买wepoker模拟器,wepoker线上大神(原来有挂);1、购买wepoker模拟器...
透视攻略!wepoker怎么增... 透视攻略!wepoker怎么增加运气,wepoker脚本(果然存在有挂);wepoker怎么增加运气...
透视中牌率!wepoker有透... 透视中牌率!wepoker有透视底牌吗,wepoker辅助脚本(切实存在有挂)一、wepoker有透...
透视黑科技!we-poker辅... 透视黑科技!we-poker辅助软件教程,wepoker买钻石有用吗(竟然是有挂);1)we-pok...