Ho appena scoperto che C++ non fornisce alcun avviso per il cast da pair<double, int>
a pair<int, int>
, il che è un po 'sorprendente. Qui è il mio programma test_pair.cpp
:Opzioni di avviso g ++ per la coppia di casting?
#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);
}
compilo usando g++ test_type.cpp -Wall -Wconversion
, ma ancora nessun avviso vengono generati. Sto usando g ++ v4.6.1. Qualcuno ha idea di come rendere g ++ generare un avviso per questo, o semplicemente non può essere fatto?
Che cosa è questa notazione? Non mi è familiare: 'v.push_back ({p});'. – orlp
scusate, stavo cercando di usare le funzionalità di C++ 11, dovrei rimuovere le parentesi. – chtlp