Skip to content

Commit

Permalink
[item18] unique_ptr: fix #161
Browse files Browse the repository at this point in the history
  • Loading branch information
jason_wang committed Feb 5, 2024
1 parent 823916d commit 915738e
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions src/4.SmartPointers/item18.md
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,7 @@ makeInvestment(Ts&&... params)
};
```

在C++14中,函数的返回类型推导存在(参阅[Item3](../1.DeducingTypes/item3.md)),意味着`makeInvestment`可以以更简单,更封装的方式实现:
在C++14中,函数返回类型推导的存在(参阅[Item3](../1.DeducingTypes/item3.md)),意味着`makeInvestment`可以以更简单,更封装的方式实现:

```cpp
template<typename... Ts>
Expand Down Expand Up @@ -149,7 +149,7 @@ auto makeInvestment(Ts&&... params) //C++14
}
```
我之前说过,当使用默认删除器时(如`delete`),你可以合理假设`std::unique_ptr`对象和原始指针大小相同。当自定义删除器时,情况可能不再如此。函数指针形式的删除器,通常会使`std::unique_ptr`的从一个字(*word*)大小增加到两个。对于函数对象形式的删除器来说,变化的大小取决于函数对象中存储的状态多少,无状态函数(stateless function)对象(比如不捕获变量的*lambda*表达式)对大小没有影响,这意味当自定义删除器可以实现为函数或者*lambda*时,尽量使用*lambda*:
我之前说过,当使用默认删除器时(如`delete`),你可以合理假设`std::unique_ptr`对象和原始指针大小相同。当自定义删除器时,情况可能不再如此。函数指针形式的删除器,通常会使`std::unique_ptr`的大小从一个字(*word*)增加到两个。对于函数对象形式的删除器来说,变化的大小取决于函数对象中存储的状态多少,无状态函数(stateless function)对象(比如不捕获变量的*lambda*表达式)对大小没有影响,这意味当自定义删除器可以实现为函数或者*lambda*时,尽量使用*lambda*:
```cpp
auto delInvmt1 = [](Investment* pInvestment) //无状态lambda的
Expand Down

0 comments on commit 915738e

Please sign in to comment.