質問編集履歴
3
詳しい説明
test
CHANGED
File without changes
|
test
CHANGED
@@ -29,5 +29,6 @@
|
|
29
29
|
g++-12 -std=c++17 -I . -O2
|
30
30
|
|
31
31
|
AppleClangで同様のコードを実行した際は同じはnoteが出ませんでした。
|
32
|
+
また、-std=c++17のところを-std=c++11にしたところnoteが出ませんでした。
|
32
33
|
翻訳をしてみたのですが意味がよくわかりません。
|
33
34
|
どなたか詳しい方よろしくお願いします。
|
2
コンパイルオプションなどを加えた。
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
C++
|
1
|
+
C++にてstd::pair<long double,long double>を引数にとる関数を定義した際にnoteが出る。
|
test
CHANGED
@@ -23,5 +23,11 @@
|
|
23
23
|
| ^~~
|
24
24
|
|
25
25
|
```
|
26
|
+
実行環境
|
27
|
+
Mac book M1 2020
|
28
|
+
コンパイルオプション
|
29
|
+
g++-12 -std=c++17 -I . -O2
|
30
|
+
|
31
|
+
AppleClangで同様のコードを実行した際は同じはnoteが出ませんでした。
|
26
32
|
翻訳をしてみたのですが意味がよくわかりません。
|
27
33
|
どなたか詳しい方よろしくお願いします。
|
1
具体的なコードを挿入した。
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,13 +1,27 @@
|
|
1
1
|
```cpp
|
2
|
+
#include <bits/stdc++.h>
|
3
|
+
using namespace std;
|
4
|
+
using pb = pair<long double,long double>;
|
2
5
|
bool cmp(const pb i,const pb j){
|
3
6
|
long double a = i.first - i.second;
|
4
7
|
long double b = j.first - j.second;
|
5
8
|
return a<b;
|
6
9
|
};
|
10
|
+
int main(){
|
11
|
+
int N;cin>>N;
|
12
|
+
vector<pair<long double,long double>> P(N);
|
13
|
+
for(int i=0;i<N;i++)cin>>P[i].first>>P[i].second;
|
14
|
+
sort(begin(P),end(P),cmp);
|
15
|
+
}
|
16
|
+
|
7
17
|
```
|
8
18
|
上記のような関数を定義し、GCCのg++12にてコンパイルを行ったところ以下のようなnoteが表示されました。
|
9
19
|
```
|
20
|
+
main.cpp: In function 'bool cmp(pb, pb)':
|
10
|
-
|
21
|
+
main.cpp:4:6: note: parameter passing for argument of type 'std::pair<long double, long double>' when C++17 is enabled changed to match C++14 in GCC 10.1
|
22
|
+
4 | bool cmp(const pb i,const pb j){
|
23
|
+
| ^~~
|
24
|
+
|
11
25
|
```
|
12
26
|
翻訳をしてみたのですが意味がよくわかりません。
|
13
27
|
どなたか詳しい方よろしくお願いします。
|