質問編集履歴

3

詳しい説明

2023/03/21 08:39

投稿

退会済みユーザー
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

コンパイルオプションなどを加えた。

2023/03/21 08:35

投稿

退会済みユーザー
test CHANGED
@@ -1 +1 @@
1
- C++std::pair<long double,long double>を引数にとる関数を定義した際にnoteについて
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

具体的なコードを挿入した。

2023/03/21 08:12

投稿

退会済みユーザー
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
- test.cpp:24: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
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
  どなたか詳しい方よろしくお願いします。