gpt4 book ai didi

c++ - 高完整性 C++ 规则 7.2.1 的基本原理是什么

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

High integrity C++ rule 7.2.1 , “使用显式枚举基数并确保它足够大以存储所有枚举数”要求枚举和作用域枚举定义基数(大小)

例如//合规

enum E1 : int8_t {a,b,c};
enum class E2 : int32_t {a,b,c};

//不合规

enum E3 {a,b,c};
enum class E4 {a,b,c};

排除编译器无法确定大小的前向声明,我们无法理解此要求背后的合理性。我们认为,强制开发人员指定大小更有可能妨碍潜在的编译器优化。坚持让程序员在编译器可以确定的时候做出决定有什么好处?

这条规则背后的基本原理是什么?

最佳答案

“好吧,这取决于...™”

如果在您的特定情况下,您没有特别的理由关心您的编译器可能选择使用多少位来描述您的enum,那么...好吧...“你没有理由关心!”

但是如果您可能需要确定某些底层数据表示(二进制记录,例如……内存中的结构……)使用“特定的已知位数”,那么 你关心。

虽然我总体上同意这些“高完整性™” 指南中的许多原则,但我对这个特定部分不太确定。 如果没有其他相反的决定性考虑,我不太倾向于告诉编译器它必须做什么。 “如果我没有理由去关心,那我就不在乎了。”

关于c++ - 高完整性 C++ 规则 7.2.1 的基本原理是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58944102/

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