fix #180 等其他错误 (#181)

This commit is contained in:
shikai-123 2024-05-19 16:13:58 +08:00 committed by GitHub
parent ff3218a1f5
commit 14d64d6dfc
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 3 additions and 3 deletions

View File

@ -81,7 +81,7 @@ enum Status { good = 0,
```
这里值的范围从`0`到`0xFFFFFFFF`。除了在不寻常的机器上(比如一个`char`至少有32bits的那种编译器都会选择一个比`char`大的整型类型来表示`Status`。
为了高效使用内存,编译器通常在确保能包含所有枚举值的前提下为`enum`选择一个最小的底层类型。在一些情况下,编译器将会优化速度,舍弃大小,这种情况下它可能不会选择最小的底层类型,而是选择对优化大小有帮助的类型。为此C++98只支持`enum`定义(所有枚举名全部列出来);`enum`声明是不被允许的。这使得编译器能在使用之前为每一个`enum`选择一个底层类型。
为了高效使用内存,编译器通常在确保能包含所有枚举值的前提下为`enum`选择一个最小的底层类型。在一些情况下,编译器将会优化速度,舍弃大小,这种情况下它可能不会选择最小的底层类型,但它们当然希望能够针对大小进行优化。为此C++98只支持`enum`定义(所有枚举名全部列出来);`enum`声明是不被允许的。这使得编译器能在使用之前为每一个`enum`选择一个底层类型。
但是不能前置声明`enum`也是有缺点的。最大的缺点莫过于它可能增加编译依赖。再次考虑`Status` `enum`
```cpp

View File

@ -1,6 +1,6 @@
## 条款九:优先考虑别名声明而非`typedef`s
## 条款九:优先考虑别名声明而非`typedef`
**Item 9: Prefer alias declarations to `typedef`s**
**Item 9: Prefer alias declarations to `typedef`**
我相信每个人都同意使用STL容器是个好主意并且我希望[Item18](../4.SmartPointers/item18.md)能说服你让你觉得使用`std:unique_ptr`也是个好主意,但我猜没有人喜欢写上几次 `std::unique_ptr<std::unordered_map<std::string, std::string>>`这样的类型,它可能会让你患上腕管综合征的风险大大增加。