小编Pet*_*Six的帖子

将枚举值映射到C++中的类型

有没有办法将枚举值映射到C++中的类型,包括C++ 11.
我有以下枚举类型:

enum ATTRIBUTE{AGE=0, MENOPAUSE, TUMOR_SIZE, INV_NODES, NODE_CAPS,
               DEG_MALIG, BREAST, BREAST_QUAD, IRRADIAT, CLASS};
Run Code Online (Sandbox Code Playgroud)

我想将此枚举的每个值映射到某种类型.我要地图AGEint,MENOPAUSE另一个枚举类型,BREAST为bool等等.
那么是否可以创建一个函数来返回一个取决于attr变量值的类型值?

//Like that:
auto value = map_attr(ATTRIBUTE attr);
//Here the type of the value variable should be int if the attr variable is AGE, bool for BREAST and so on.
Run Code Online (Sandbox Code Playgroud)

c++ enums metaprogramming template-meta-programming c++11

10
推荐指数
1
解决办法
4330
查看次数

同时拿着两个互斥锁

我想知道如果我同时持有两个boost :: scoped_locks会有任何问题.锁定锁定不同的互斥锁.请考虑以下示例:

void foo1()
{
   boost::recursive_mutex::scoped_lock lock(mutex1);
   foo2();
}

void foo2()
{
   boost::recursive_mutex::scoped_lock lock(mutex2);
}
Run Code Online (Sandbox Code Playgroud)

我知道这不会导致僵局.但是还有其他问题吗?也许这会导致线程睡眠时间过长?

c++ mutex thread-safety boost-mutex

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