如何常量映射变量
How to const map variables
我有三个变量int a,b,c,我用它来选择第四个变量d的值。
一个简短的布尔示例:
a=0, b=0, c=0 -> d=0
a=0, b=0, c=1 -> d=1
a=0, b=1, c=0 -> d=2
a=0, b=1, c=1 -> d=1
and so on...
我想过创建一个 constexpr 矩阵来创建映射。缺点是它会生成不可读的代码。有没有更好的选择? 也许是一些提升库或已知的设计模式?
我正在用 c++11 编程
谢谢:)
如果可以提供a
、b
和c
作为模板参数,而不是函数参数,则可以定义一个具有三个bool
参数的模板,然后为感兴趣的组合提供显式实现,如下所示:
template<bool A, bool B, bool C> constexpr int index() { return -1; }
// Truth table
template<> constexpr int index< true, false, true>() { return 9; }
template<> constexpr int index< true, false, false>() { return 24; }
...
以下是调用这些函数的方法:
cout << index<true,false,true>() << endl; // Prints 9
演示。
相关文章:
- 从另一个 cpp 文件更改结构内、映射键内的变量
- 如果包含映射的静态库与可执行文件和动态库链接,静态映射(变量)是否会被多次释放?
- C++预处理会生成变量成员、资源库和映射
- gdb映射显示不正确的成员变量
- 如何常量映射变量
- C++映射:创建一个临时变量或每次使用键访问值会更快吗
- program_options变量映射更改参数
- C++将一组整数变量映射到值的有效方法
- 打印出映射键值,其中键是结构变量 c++
- 其中是在以下程序中创建的用于映射初始化的临时变量
- C++如何声明映射变量
- 如何在一个无序映射中存储2个以上的变量
- 将QWidget映射到变量
- 语法错误:html 映射文件中的解析错误 - ogmaps 引用错误:找不到变量:GUnload
- 要迭代的成员变量的映射
- 检查 C++ 中的空静态映射变量
- std::map 中不同类型的映射变量
- Javascript映射变量
- 映射变量中的项
- 将映射变量的值分配给另一个变量