mirror of
https://github.com/isocpp/CppCoreGuidelines.git
synced 2024-03-22 13:30:58 +08:00
Add [Abrahams01] bibliography entry for exception-safety (#991)
Link to it when talking about the strong and basic exception-safety guarantees. Add it to the dictionary.
This commit is contained in:
parent
45fff26517
commit
898f819b00
|
@ -5658,7 +5658,7 @@ It is simple and efficient. If you want to optimize for rvalues, provide an over
|
||||||
|
|
||||||
##### Note
|
##### Note
|
||||||
|
|
||||||
The `swap` implementation technique offers the [strong guarantee](???).
|
The `swap` implementation technique offers the [strong guarantee](#Abrahams01).
|
||||||
|
|
||||||
##### Example
|
##### Example
|
||||||
|
|
||||||
|
@ -5687,7 +5687,7 @@ But what if you can get significantly better performance by not making a tempora
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
By writing directly to the target elements, we will get only [the basic guarantee](#???) rather than the strong guarantee offered by the `swap` technique. Beware of [self-assignment](#Rc-copy-self).
|
By writing directly to the target elements, we will get only [the basic guarantee](#Abrahams01) rather than the strong guarantee offered by the `swap` technique. Beware of [self-assignment](#Rc-copy-self).
|
||||||
|
|
||||||
**Alternatives**: If you think you need a `virtual` assignment operator, and understand why that's deeply problematic, don't call it `operator=`. Make it a named function like `virtual void assign(const Foo&)`.
|
**Alternatives**: If you think you need a `virtual` assignment operator, and understand why that's deeply problematic, don't call it `operator=`. Make it a named function like `virtual void assign(const Foo&)`.
|
||||||
See [copy constructor vs. `clone()`](#Rc-copy-virtual).
|
See [copy constructor vs. `clone()`](#Rc-copy-virtual).
|
||||||
|
@ -21361,6 +21361,8 @@ Alternatively, we will decide that no change is needed and delete the entry.
|
||||||
|
|
||||||
# Bibliography
|
# Bibliography
|
||||||
|
|
||||||
|
* <a name="Abrahams01"></a>
|
||||||
|
\[Abrahams01]: D. Abrahams. [Exception-Safety in Generic Components](http://www.boost.org/community/exception_safety.html).
|
||||||
* <a name="Alexandrescu01"></a>
|
* <a name="Alexandrescu01"></a>
|
||||||
\[Alexandrescu01]: A. Alexandrescu. Modern C++ Design (Addison-Wesley, 2001).
|
\[Alexandrescu01]: A. Alexandrescu. Modern C++ Design (Addison-Wesley, 2001).
|
||||||
* <a name="Cplusplus03"></a>
|
* <a name="Cplusplus03"></a>
|
||||||
|
|
|
@ -23,6 +23,8 @@ ABA
|
||||||
abi
|
abi
|
||||||
ABI
|
ABI
|
||||||
ABIs
|
ABIs
|
||||||
|
Abrahams
|
||||||
|
Abrahams01
|
||||||
abstr
|
abstr
|
||||||
accessor
|
accessor
|
||||||
ack
|
ack
|
||||||
|
|
Loading…
Reference in New Issue
Block a user