質問編集履歴
6
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
**情報が古くなっています(追記参照)
|
1
|
+
**情報が古くなっています‼ (追記参照)**
|
2
2
|
|
3
3
|
|
4
4
|
|
5
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,3 +1,7 @@
|
|
1
|
+
**情報が古くなっています(追記参照)‼**
|
2
|
+
|
3
|
+
|
4
|
+
|
1
5
|
参照で受け取った引数への変更を出力した際、
|
2
6
|
|
3
7
|
下記コードのように、式を分けない場合と分ける場合で出力内容が異なるようです。
|
4
test
CHANGED
File without changes
|
test
CHANGED
@@ -88,4 +88,4 @@
|
|
88
88
|
|
89
89
|
|
90
90
|
|
91
|
-
C++17にて式の評価順が厳密に定義された([参考](https://cpprefjp.github.io/lang/cpp17/expression_evaluation_order.html))為、C++17以降では両ケース共に
|
91
|
+
C++17にて式の評価順が厳密に定義された([参考](https://cpprefjp.github.io/lang/cpp17/expression_evaluation_order.html))為、C++17以降では両ケース共に後者の出力となるようです。ご注意ください。
|
3
test
CHANGED
File without changes
|
test
CHANGED
@@ -88,4 +88,4 @@
|
|
88
88
|
|
89
89
|
|
90
90
|
|
91
|
-
C++17にて式の評価順が厳密に定義された([参考](https://cpprefjp.github.io/lang/cpp17/expression_evaluation_order.html))為、C++17以降では両ケース共に同じ出力となるようです。ご注意ください。
|
91
|
+
C++17にて式の評価順が厳密に定義された([参考](https://cpprefjp.github.io/lang/cpp17/expression_evaluation_order.html))為、C++17以降では両ケース共に同じ出力(後者)となるようです。ご注意ください。
|
2
test
CHANGED
File without changes
|
test
CHANGED
@@ -4,13 +4,9 @@
|
|
4
4
|
|
5
5
|
どうしてこうなるのでしょうか?
|
6
6
|
|
7
|
-
両出力が同一
|
7
|
+
両出力が同一(後者)だと想定していただけに非常に気になります。
|
8
8
|
|
9
9
|
回答の程、宜しくお願いします。
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
**Note:** C++17にて式の評価順が厳密に定義された為([参照](https://cpprefjp.github.io/lang/cpp17/expression_evaluation_order.html))、C++17以降では両ケースとも同じ出力となるようです。
|
14
10
|
|
15
11
|
|
16
12
|
|
@@ -85,3 +81,11 @@
|
|
85
81
|
1 1
|
86
82
|
|
87
83
|
```
|
84
|
+
|
85
|
+
|
86
|
+
|
87
|
+
## 追記 (2018.3.14)
|
88
|
+
|
89
|
+
|
90
|
+
|
91
|
+
C++17にて式の評価順が厳密に定義された([参考](https://cpprefjp.github.io/lang/cpp17/expression_evaluation_order.html))為、C++17以降では両ケース共に同じ出力となるようです。ご注意ください。
|
1
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
C++: 参照の挙動に関して
|
1
|
+
C++: 参照の挙動に関して (※式の評価順序)
|
test
CHANGED
@@ -10,6 +10,10 @@
|
|
10
10
|
|
11
11
|
|
12
12
|
|
13
|
+
**Note:** C++17にて式の評価順が厳密に定義された為([参照](https://cpprefjp.github.io/lang/cpp17/expression_evaluation_order.html))、C++17以降では両ケースとも同じ出力となるようです。
|
14
|
+
|
15
|
+
|
16
|
+
|
13
17
|
[http://ideone.com/KhCDTK](http://ideone.com/KhCDTK)
|
14
18
|
|
15
19
|
|
@@ -18,17 +22,23 @@
|
|
18
22
|
|
19
23
|
#include <iostream>
|
20
24
|
|
21
|
-
|
22
25
|
|
23
|
-
auto f(auto& a) {
|
24
26
|
|
27
|
+
template <typename T>
|
28
|
+
|
29
|
+
T f(T& t)
|
30
|
+
|
31
|
+
{
|
32
|
+
|
25
|
-
return ++
|
33
|
+
return ++t;
|
26
34
|
|
27
35
|
}
|
28
36
|
|
29
|
-
|
30
37
|
|
38
|
+
|
31
|
-
void test1()
|
39
|
+
void test1()
|
40
|
+
|
41
|
+
{
|
32
42
|
|
33
43
|
int a{};
|
34
44
|
|
@@ -36,9 +46,11 @@
|
|
36
46
|
|
37
47
|
}
|
38
48
|
|
39
|
-
|
40
49
|
|
50
|
+
|
41
|
-
void test2()
|
51
|
+
void test2()
|
52
|
+
|
53
|
+
{
|
42
54
|
|
43
55
|
int a{};
|
44
56
|
|
@@ -48,13 +60,17 @@
|
|
48
60
|
|
49
61
|
}
|
50
62
|
|
51
|
-
|
52
63
|
|
64
|
+
|
53
|
-
int main()
|
65
|
+
int main()
|
66
|
+
|
67
|
+
{
|
54
68
|
|
55
69
|
test1();
|
56
70
|
|
57
71
|
test2();
|
72
|
+
|
73
|
+
return 0;
|
58
74
|
|
59
75
|
}
|
60
76
|
|