g ++ Warnoptionen für das Casting-Paar?

8

Ich habe gerade festgestellt, dass C ++ keine Warnungen zum Umwandeln von pair<double, int> nach pair<int, int> gibt, was ein wenig überraschend ist. Hier ist mein Programm test_pair.cpp :

%Vor%

Ich kompiliere es mit g++ test_type.cpp -Wall -Wconversion , aber es werden immer noch keine Warnungen generiert. Ich benutze g ++ v4.6.1. Jeder hat eine Idee, wie man g ++ eine Warnung dafür erzeugen kann, oder es kann einfach nicht gemacht werden?

    
chtlp 30.03.2012, 11:49
quelle

1 Antwort

4

Paare (und Tupel) sind aus fast allem, was passt, konstruierbar. Insbesondere kann jedes Element aus allem konstruiert sein, das implizit in es umwandelbar ist. Im Grunde "tut es, was Sie erwarten". Das pair hat Konstruktorvorlagen, die ungefähr so ​​aussehen:

%Vor%

Sie sollten jedoch nur sagen:

%Vor%     
Kerrek SB 30.03.2012 11:53
quelle

Tags und Links