Skip to content

Commit

Permalink
Update
Browse files Browse the repository at this point in the history
  • Loading branch information
eugnsp committed Oct 11, 2019
1 parent 0f4517b commit fdfe4b6
Show file tree
Hide file tree
Showing 5 changed files with 63 additions and 17 deletions.
4 changes: 2 additions & 2 deletions cpp/concurrency_and_parallelism.md
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@
:link:

* [*Hazard pointer* – Wikipedia](https://en.wikipedia.org/wiki/Hazard_pointer)
* A.Alexandrescu, M.Michael. [*Lock-free data structures with hazard pointers*](http://www.drdobbs.com/lock-free-data-structures-with-hazard-po/184401890) – Dr.Dobb's Journal (2004)
* A.Alexandrescu, M.Michael. [*Lock-free data structures with hazard pointers*](http://www.drdobbs.com/lock-free-data-structures-with-hazard-po/184401890) – Dr.Dobbs Journal (2004)

#### Read-copy-update (RCU)

Expand Down Expand Up @@ -151,7 +151,7 @@

:link:

* [*POSIX threads programming*](https://computing.llnl.gov/tutorials/pthreads/) – B.Barney
* B.Barney. [*POSIX threads programming*](https://computing.llnl.gov/tutorials/pthreads/)

<!--
Expand Down
8 changes: 8 additions & 0 deletions cpp/core_language.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
* [Argument-dependent lookup](#argument-dependent-lookup)
* [Keywords](#keywords)
* [`const` and `mutable`](const-and-mutable)
* [`constexpr`](#constexpr)
* [`friend`](#friend)
* [Standards](#standards)
* [C++17](#c17)
Expand Down Expand Up @@ -118,6 +119,13 @@ See [Relocation &ndash; Memory &ndash; Optimization and hardware](optimization_a

* H.Sutter. [*You don’t know `const` and `mutable`*](https://channel9.msdn.com/posts/C-and-Beyond-2012-Herb-Sutter-You-dont-know-blank-and-blank) &ndash; C++ and Beyond (2012)

### `constexpr`

:movie_camera:

* S.Schurr. [*`constexpr`: Introduction*](https://www.youtube.com/watch?v=fZjYCQ8dzTc) &ndash; CppCon (2015)
* S.Schurr. [*`constexpr`: Applications*](https://www.youtube.com/watch?v=qO-9yiAOQqc) &ndash; CppCon (2015)

### `friend`

#### Hidden friends
Expand Down
13 changes: 13 additions & 0 deletions cpp/optimization_and_hardware.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
* [Introduction and overview](#introduction-and-overview)
* [Compiler optimizations](#compiler-optimizations)
* [Integral division](#integral-division)
* [Return value optimization and copy elision](#return-value-optimization-and-copy-elision)
* [Undefined behavior](#undefined-behavior)
* [Strict aliasing rule](#strict-aliasing-rule)
* [CPU](#cpu)
Expand Down Expand Up @@ -43,10 +44,22 @@

### Integeral division

:link:

* [*Why does GCC use multiplication by a strange number in implementing integer division?*](https://stackoverflow.com/questions/41183935/why-does-gcc-use-multiplication-by-a-strange-number-in-implementing-integer-divi) &ndash; Stack Overflow
* D.W.Jones. [*Reciprocal multiplication, a tutorial*](https://homepage.divms.uiowa.edu/~jones/bcd/divide.html) (1999)
* T.Granlund, P.L.Montgomery. [*Division by invariant integers using multiplication*](https://gmplib.org/~tege/divcnst-pldi94.pdf) (1994)

### Return value optimization and copy elision

:camera:

* J.Kalb. [*Copy elision*](https://www.youtube.com/watch?v=fSB57PiXpRw) &ndash; C++Now (2018)

:anchor:

* [*Copy alision*](https://en.cppreference.com/w/cpp/language/copy_elision) &ndash; C++ reference

### Undefined behavior

:link
Expand Down
53 changes: 39 additions & 14 deletions cpp/std_library.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
* [Iterators](#iterators)
* [Numerics](#numerics)
* [`std::bit_cast`](#stdbit_cast)
* [`std::iota`](#stdiota)
* [Random numbers](#random-numbers)
* [Regular expressions](#regular-expressions)
* [Smart pointers](#smart-pointers)
Expand All @@ -32,12 +33,14 @@
* [Utilities](#utilities)
* [Function objects](#function-objects)
* [Pairs and tuples](#pairs-and-tuples)
* [Sum types](#sum_types)
* [Sum types](#sum-types)
<!-- * [`std::optional`](#stdoptional) -->
* [`std::variant`](#stdvariant)
* [`(std::)expected`](#stdexpected)
* [`std::launder`](#stdlaunder)
* [`std::expected`](#stdexpected)
* [Tricks and subtleties](#tricks-and-subtleties)
* [SFINAE](#sfinae)
* [The Standard Template Library (STL)](#the-standard-template-library-stl)
<!-- * [SFINAE](#sfinae) -->

---

Expand Down Expand Up @@ -121,7 +124,11 @@

* [`std::bit_cast`](https://en.cppreference.com/w/cpp/numeric/bit_cast) &ndash; C++ reference

### `std::iota`

:link:

* S.Parent [*#iotashaming*](https://sean-parent.stlab.cc/2019/01/04/iota.html) (2019)

---

Expand Down Expand Up @@ -276,7 +283,7 @@

:movie_camera:

* M.Clow. [*`string_view`: when to use it and when not*](https://www.youtube.com/watch?v=H9gAaNRoon4) &ndash; CppCon (2015)
* M.Clow. [*`string_view`: When to use it and when not*](https://www.youtube.com/watch?v=H9gAaNRoon4) &ndash; CppCon (2015)
* N.MacIntosh. [*Evolving `array_view` and `string_view` for safe C++ code*](https://www.youtube.com/watch?v=C4Z3c4Sv52U) &ndash; CppCon (2015)

---
Expand Down Expand Up @@ -349,6 +356,15 @@ See also [*Type traits* &ndash; Templates](templates.md#type-traits).

* [`std::variant`](https://en.cppreference.com/w/cpp/utility/variant) &ndash; C++ reference

#### `(std::)expected`

> A proposed utility class to represent expected monad.
:anchor:

* V.Botet, J.F.Bastien. [*`std::expected`*](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0323r7.html) &ndash; WG21/P0323R7 (2018)
* V.Botet, P.Talbot. [*A proposal to add a utility class to represent expected monad*](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4109.pdf) &ndash; WG21/N4109 (2014)

### `std::launder`

:link:
Expand All @@ -360,26 +376,35 @@ See also [*Type traits* &ndash; Templates](templates.md#type-traits).

* [*`std::launder`*](https://en.cppreference.com/w/cpp/utility/launder) &ndash; C++ reference

### `std::expected`
---

> A utility class to represent expected monad. Not yet in the C++ standard.
## Tricks and subtleties

:anchor:
:link:

* V.Botet, J.F.Bastien. [*`std::expected`*](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0323r7.html) &ndash; WG21/P0323R7 (2018)
* V.Botet, P.Talbot. [*A proposal to add a utility class to represent expected monad*](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4109.pdf) &ndash; WG21/N4109 (2014)
* [*In `std::exchange`, why is the second template parameter defaulted?*](https://stackoverflow.com/questions/34876969/in-stdexchange-why-is-the-second-template-parameter-defaulted) &ndash; Stack Overflow

---

## Tricks and subtleties
## The Standard Template Library (STL)

:link:

* [*In `std::exchange`, why is the second template parameter defaulted?*](https://stackoverflow.com/questions/34876969/in-stdexchange-why-is-the-second-template-parameter-defaulted) &ndash; Stack Overflow
* [*Standard Template Library*](https://en.wikipedia.org/wiki/Standard_Template_Library) &ndash; Wikipedia
* [*History of the Standard Template Library*](https://en.wikipedia.org/wiki/History_of_the_Standard_Template_Library) &ndash; Wikipedia
* A.Stevens [*Interviews Alex Stepanov*](http://stepanovpapers.com/drdobbs-interview.pdf) &ndash; Dr.Dobb's Journal (1995)

---
:page_facing_up:

* D.R.Musser, A.A.Stepanov. [*A library of generic algorithms in Ada*](http://stepanovpapers.com/p216-musser.pdf) &ndash; [Proc. ACM SIGAda, 216](https://doi.org/10.1145/317500.317529) (1987)

:movie_camera:

* A.Stepanov. [*STL and its design principles*](https://www.youtube.com/watch?v=COuHLky7E2Q) (2002)

## SFINAE
<!-- ## SFINAE
<!-- move into Templates -->
* [*Making `std::get` play nice with SFINAE*](https://stackoverflow.com/questions/41708491/making-stdget-play-nice-with-sfinae) &ndash; Stack Overflow
* [*Making `std::get` play nice with SFINAE*](https://stackoverflow.com/questions/41708491/making-stdget-play-nice-with-sfinae) &ndash; Stack Overflow -->

<!-- * A.Alexandrescu. [*Systematic error handling in C++*](https://www.youtube.com/watch?v=kaI4R0Ng4E8&t=570) &ndash; C++ and Beyond (2012) -->
2 changes: 1 addition & 1 deletion data_structures_and_algorithms/algorithm_analysis.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,4 +28,4 @@

:link:

* *Invariants for binary search.* [Part I](http://www.drdobbs.com/cpp/invariants-for-binary-search-part-1-a-si/240169169), [Part II](http://www.drdobbs.com/cpp/invariants-for-binary-search-part-2-refi/240169199), [Part III](http://www.drdobbs.com/cpp/invariants-for-binary-search-part-3-impr/240169239), [Part IV](http://www.drdobbs.com/cpp/invariants-for-binary-search-part-4-usin/240169267), [Part V](http://www.drdobbs.com/cpp/abstractions-for-binary-search-part-5-ge/240169289), [Part VI](http://www.drdobbs.com/cpp/abstractions-for-binary-search-part-6-ho/240169326), [Part VII](http://www.drdobbs.com/cpp/abstractions-for-binary-search-part-7-ch/240169367), [Part VIII](http://www.drdobbs.com/cpp/abstractions-for-binary-search-part-8-wh/240169392), [Part IX](http://www.drdobbs.com/cpp/abstractions-for-binary-search-part-9-wh/240169416), [Part X](http://www.drdobbs.com/cpp/abstractions-for-binary-search-part-10-p/240169437) &ndash; Dr.Dobb's Journal
* *Invariants for binary search.* [Part I](http://www.drdobbs.com/cpp/invariants-for-binary-search-part-1-a-si/240169169), [Part II](http://www.drdobbs.com/cpp/invariants-for-binary-search-part-2-refi/240169199), [Part III](http://www.drdobbs.com/cpp/invariants-for-binary-search-part-3-impr/240169239), [Part IV](http://www.drdobbs.com/cpp/invariants-for-binary-search-part-4-usin/240169267), [Part V](http://www.drdobbs.com/cpp/abstractions-for-binary-search-part-5-ge/240169289), [Part VI](http://www.drdobbs.com/cpp/abstractions-for-binary-search-part-6-ho/240169326), [Part VII](http://www.drdobbs.com/cpp/abstractions-for-binary-search-part-7-ch/240169367), [Part VIII](http://www.drdobbs.com/cpp/abstractions-for-binary-search-part-8-wh/240169392), [Part IX](http://www.drdobbs.com/cpp/abstractions-for-binary-search-part-9-wh/240169416), [Part X](http://www.drdobbs.com/cpp/abstractions-for-binary-search-part-10-p/240169437) &ndash; Dr.Dobbs Journal

0 comments on commit fdfe4b6

Please sign in to comment.