回答編集履歴

6

追記

2019/01/17 12:15

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -28,13 +28,15 @@
28
28
 
29
29
 
30
30
 
31
+ バグの特定
32
+
31
33
  ---
32
34
 
33
35
  > どうやらmaxという関数が定義されていないことが問題らしい
34
36
 
35
37
 
36
38
 
37
- その仮を確かめるために、エラーの再現を試みると良いです。
39
+ その仮を確かめるために、エラーの再現を試みると良いです。
38
40
 
39
41
  ```C++
40
42
 
@@ -63,6 +65,10 @@
63
65
 
64
66
 
65
67
  文言が違いますね。
68
+
69
+
70
+
71
+ ---
66
72
 
67
73
  ここで改めてエラーメッセージを良く見てみましょう。
68
74
 
@@ -106,4 +112,8 @@
106
112
 
107
113
  ^~~~
108
114
 
115
+ prog.cc:1:6: note: candidate function not viable: requires 2 arguments, but 1 was provided
116
+
117
+ void func(int, int);
118
+
109
119
  ```

5

追記

2019/01/17 12:15

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -77,3 +77,33 @@
77
77
  **『適合する関数が無い』と言っているだけで、『存在しない』とは言っていないです。**
78
78
 
79
79
  そうすると、自然に引数の与え方に目が行きます。
80
+
81
+
82
+
83
+ ```C++
84
+
85
+ void func(int, int);
86
+
87
+
88
+
89
+ int main() {
90
+
91
+ func(42);
92
+
93
+ }
94
+
95
+ ```
96
+
97
+
98
+
99
+ **出力** [Wandbox](https://wandbox.org/permlink/lX1O2jnBuCgD1MEN)
100
+
101
+ ```
102
+
103
+ prog.cc:4:5: error: no matching function for call to 'func'
104
+
105
+ func(42);
106
+
107
+ ^~~~
108
+
109
+ ```

4

修正

2019/01/17 12:11

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -18,7 +18,7 @@
18
18
 
19
19
  複数要素を引数に取らないと最大値の求めようが無いのでは。
20
20
 
21
- なお、次のようにinitializer_listを利用しても良いように思います。
21
+ なお、次のようにinitializer_listを利用しても良いように思います。[std::max](https://cpprefjp.github.io/reference/algorithm/max.html)
22
22
 
23
23
  ```C++
24
24
 
@@ -74,6 +74,6 @@
74
74
 
75
75
 
76
76
 
77
- **『適合する関数が無いと言っているだけで、『存在しない』とは言っていないです。**
77
+ **『適合する関数が無いと言っているだけで、『存在しない』とは言っていないです。**
78
78
 
79
79
  そうすると、自然に引数の与え方に目が行きます。

3

追記

2019/01/17 12:07

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -25,3 +25,55 @@
25
25
  int ma = max({a[i], a[j], a[k]});
26
26
 
27
27
  ```
28
+
29
+
30
+
31
+ ---
32
+
33
+ > どうやらmaxという関数が定義されていないことが問題らしい
34
+
35
+
36
+
37
+ その仮定を確かめるために、エラーの再現を試みると良いです。
38
+
39
+ ```C++
40
+
41
+ int main() {
42
+
43
+ ghost_func(1, 2);
44
+
45
+ }
46
+
47
+ ```
48
+
49
+
50
+
51
+ **出力** [Wandbox](https://wandbox.org/permlink/hAvoLWHGeGnAQQyg)
52
+
53
+ ```
54
+
55
+ prog.cc:2:5: error: use of undeclared identifier 'ghost_func'
56
+
57
+ ghost_func(1, 2);
58
+
59
+ ^
60
+
61
+ ```
62
+
63
+
64
+
65
+ 文言が違いますね。
66
+
67
+ ここで改めてエラーメッセージを良く見てみましょう。
68
+
69
+ ```
70
+
71
+ error: no matching function for call to 'max'
72
+
73
+ ```
74
+
75
+
76
+
77
+ **『適合する』関数が無いと言っているだけで、『存在しない』とは言っていないです。**
78
+
79
+ そうすると、自然に引数の与え方に目が行きます。

2

追記

2019/01/17 12:06

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -17,3 +17,11 @@
17
17
 
18
18
 
19
19
  複数要素を引数に取らないと最大値の求めようが無いのでは。
20
+
21
+ なお、次のようにinitializer_listを利用しても良いように思います。
22
+
23
+ ```C++
24
+
25
+ int ma = max({a[i], a[j], a[k]});
26
+
27
+ ```

1

修正

2019/01/17 12:01

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -16,4 +16,4 @@
16
16
 
17
17
 
18
18
 
19
- std::max関引数は二つでは。
19
+ 要素を引数に取らないと最大値の求めようが無いのでは。