ちょうどC + +がキャストに関する警告を表示しないことがわかりましたpair<double, int>
からpair<int, int>
、少し驚くべきことです。私はそれがg++ test_type.cpp -Wall -Wconversion
を使用して、まだ何の警告が生成されないコンパイルキャストペアのg ++警告オプション?
#include <vector>
#include <utility>
using namespace std;
int main()
{
std::vector<pair<int, int> > v;
pair<double, int> p = make_pair(3.8, 3);
v.push_back(p);
}
:ここに私のプログラムtest_pair.cpp
です。私はg ++ v4.6.1を使用しています。誰もがg ++に警告を生成させる方法を知っていますか、それともできませんか?
この表記は何ですか
pair
はこのような何かを見て、コンストラクタテンプレートを持っていますか?私はそれに慣れていない: 'v.push_back({p});'。 – orlp申し訳ありませんが、私はC++ 11の機能を使用しようとしていましたが、大括弧を削除する必要があります。 – chtlp