gpt4 book ai didi

c++ - 如何 const 映射变量

转载 作者:行者123 更新时间:2023-11-30 03:23:17 25 4
gpt4 key购买 nike

我有三个变量 int a、b、c,我用它们来选择第四个变量 d 的值。

一个简短的 bool 示例:

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 矩阵来创建映射。不利的一面是它会生成不可读的代码。有更好的选择吗?也许是一些 boost 库或已知的设计模式?

我正在用 C++11 编程

谢谢你:)

最佳答案

如果您可以提供 abc 作为模板参数,而不是函数参数,您可以定义一个包含三个模板的模板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

Demo.

关于c++ - 如何 const 映射变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50491148/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com