Acabo de encontrar que C++ no da ninguna advertencia para el lanzamiento desde pair<double, int>
hasta pair<int, int>
, lo cual es un poco sorprendente. Aquí está mi programa test_pair.cpp
:g ++ ¿opciones de advertencia para el par de lanzamiento?
#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
, pero todavía no se generan advertencias. Estoy usando g ++ v4.6.1. Alguien tiene alguna idea de cómo hacer que g ++ genere una advertencia para esto, o simplemente no se puede hacer?
¿Cuál es esta notación? No estoy familiarizado con esto: 'v.push_back ({p});'. – orlp
lo siento, estaba tratando de usar las características de C++ 11, debo eliminar los corchetes. – chtlp