mirror of
https://github.com/Nekrolm/ubbook.git
synced 2026-06-09 13:14:18 +03:00
Много typos и небольших правок (#124)
* Update comparison_operator_rewrite.md: typos * Update default_default_constructor.md: typos Не уверен насчёт добавления `2D` к Point. По смыслу, вроде бы, нужно * Update shared_from_this.md * Update function_pass_and_address_restriction.md * Update enable_if_void_t.md * Update static_initialization_order_fiasco.md * Update uninitialized.md * Update ownership_and_exceptions.md * Update vptr.md
This commit is contained in:
@@ -92,7 +92,7 @@ int main() {
|
||||
|
||||
Да, почти все функции стандартной библиотеки C++17, после инстанциирования шаблонов, все-таки оказываются нормальными функциями и потому у нас уж сколько лет все работает.
|
||||
|
||||
C функциями стандартной библиотеки C все, конечно, хуже -- они могут быть макросами, и черт его знает от чего вы на самом деле взяли адресс в таком случае.
|
||||
C функциями стандартной библиотеки C все, конечно, хуже -- они могут быть макросами, и черт его знает от чего вы на самом деле взяли адрес в таком случае.
|
||||
|
||||
С C++20 (вдохновленные ranges [Эрика Ниблера](https://github.com/ericniebler)) новые (а также потенциально старые после перехода std на модули) функции внезапно могут оказаться *ниблоидами*. Глобальными объектами с определенным `operator()` -- так что они могут выглядеть и крякать как старые добрые функции, но таковыми не быть.
|
||||
И если вы использовали `С-style` каст вместо громоздкого `static_cast`, то вас могут ждать интересные результаты:
|
||||
@@ -161,7 +161,7 @@ int main() {
|
||||
|
||||
Плохая новость: замечательно не будет, поэтому придется писать код
|
||||
|
||||
Проблема решится оборачиваением вызова к std функции в вашу функцию или в лямбду.
|
||||
Проблема решится оборачиванием вызова к std функции в вашу функцию или в лямбду.
|
||||
|
||||
```C++
|
||||
int main() {
|
||||
@@ -253,7 +253,7 @@ int main() {
|
||||
integrate(LAMBDA_WRAP(std::sqrt));
|
||||
}
|
||||
```
|
||||
Что поледать, раздутие кода -- известный результат [мономорфизации](https://en.wikipedia.org/wiki/Monomorphization) шаблонов/generic функций.
|
||||
Что поделать, раздутие кода -- известный результат [мономорфизации](https://en.wikipedia.org/wiki/Monomorphization) шаблонов/generic функций.
|
||||
|
||||
Переиспользуйте лямбду, и будет лучше:
|
||||
|
||||
|
||||
Reference in New Issue
Block a user