gpt4 book ai didi

c++ - 模板中的无名枚举

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:12:38 28 4
gpt4 key购买 nike

很多模板化代码看起来像这样:

template <typename T>
class foo
{
enum { value = <some expr with T> };
};

例子可见here在质数检查程序中,我也曾经在 Factorial 实现中看到过它。

我的问题是为什么要使用无名枚举?这有什么特别的原因吗?例如,static const int 也可以工作吗?

编辑:

@Benoît:感谢提供链接,它提供了我正在寻找的见解!

最佳答案

静态常量变量会占用内存(如 Sean 所说),而枚举不占用任何内存。它们只存在于编译器的世界中。在运行时,它们只是普通整数。

除此之外,它还可以工作,除非编译器对标准的执行不当。

有一个彻底的thread关于 boost 邮件列表中的主题:

关于c++ - 模板中的无名枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/607770/

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