回答編集履歴
1
間違いを修正
test
CHANGED
@@ -34,4 +34,16 @@
|
|
34
34
|
|
35
35
|
微妙な差で2回呼ばれることもありますので、微妙な表現をしてしまいました。
|
36
36
|
|
37
|
-
[
|
37
|
+
所謂[RVO](https://blog.kmc.gr.jp/entry/2014/12/20/231430)が機能するケースではC++17より前は処理系によって1回だけ呼ばれ、[C++17以降では1回が保証される](https://faithandbrave.hateblo.jp/entry/2017/01/24/161342)。NRVO/RVOが機能できないケースでは複数回呼ばれます。
|
38
|
+
|
39
|
+
YUKI007BKBさんのコードは、NRVOが機能して1回だけのデストラクタ呼び出しになっていますので、C++17でも1回だけ呼び出しが「保証」されるというわけではないようです。
|
40
|
+
|
41
|
+
|
42
|
+
|
43
|
+
---
|
44
|
+
|
45
|
+
【alphyaさんの回答を見て修正しました】
|
46
|
+
|
47
|
+
てっきりNRVOについてもコピー省略が保証されると理解していましが、どうも異なるようです。
|
48
|
+
|
49
|
+
alphyaさんのリンク先を見るとRVOについてのみ記載されてました。
|