小编Jaf*_*ffy的帖子

如何在C++中简化这个"变量作为模板参数"?

我该如何简化此代码?

mfer::i_value* make_empty_value(mfer::tag tag_)
{
    if (tag_ == mfer::tag::mwf_ble) {
        return memory_manager::instance().add(new mfer::t_value<mfer::tag::mwf_ble>());
    } else if (tag_ == mfer::tag::mwf_chn) {
        return memory_manager::instance().add(new mfer::t_value<mfer::tag::mwf_chn>());
    } else if (tag_ == mfer::tag::mwf_blk) {
        return memory_manager::instance().add(new mfer::t_value<mfer::tag::mwf_blk>());
    } else if (tag_ == mfer::tag::mwf_seq) {
        return memory_manager::instance().add(new mfer::t_value<mfer::tag::mwf_seq>());
    } else if (tag_ == mfer::tag::mwf_man) {
        return memory_manager::instance().add(new mfer::t_value<mfer::tag::mwf_man>());
    } else if (tag_ == mfer::tag::mwf_ivl) {
        return memory_manager::instance().add(new mfer::t_value<mfer::tag::mwf_ivl>());
    } else if (tag_ == mfer::tag::mwf_sen) {
        return memory_manager::instance().add(new mfer::t_value<mfer::tag::mwf_sen>());
    } else if (tag_ == mfer::tag::mwf_wfm) { …
Run Code Online (Sandbox Code Playgroud)

c++ templates c++11

8
推荐指数
1
解决办法
283
查看次数

C中的静态函数线程安全吗?

我在C语言中开发文件系统.FUSE是事件驱动系统,因此它将自己的操作码与用户的回调函数相匹配.据我所知,C中的静态函数仅表示范围限制 - 即如果静态函数f()是在foo.c中编写的,则其符号的范围仅为foo.c而不是每个其他源文件.但我的团队成员说静态函数不是线程安全的,所以我们应该使回调非静态.(我们的系统必须在多线程环境中工作,所以它应该考虑并发.)

我整天用Google搜索,但我找不到它.我想问一下你对C中静态函数的线程安全性的认识或看法.

c

2
推荐指数
2
解决办法
1361
查看次数

标签 统计

c ×1

c++ ×1

c++11 ×1

templates ×1