Ich habe eine Funktion einen Verweis auf einen Vektor von longsCasting Vektor <int> zu Vektor <long>, wenn sie die gleiche Größe haben?
Void blarf(std::vector<long>&);
Dies ist gegeben zu nehmen und sollte nicht geändert werden. Tief in xyz.cpp ist ein Versuch, blarf()
ein vector
von int
s zu füttern:
std::vector<int> gooddata;
. . .
blarf(gooddata);
In meinem Fall und in allen Fällen für diese Software, int
und long
die gleiche Größe haben. Natürlich kann ich die Definition von gooddata
auch nicht ändern.
Welche Art von Typumwandlung ist hier angebracht? Ich versuchte dynamic_cast
, aber das ist nur für polymorphe Klassenumwandlung. static_cast
kein Worky entweder. Ich bin kein Genie in C++ Typ Casts.
Yee, ist dieses hässliche Formatierung. Wird es reparieren, wenn ich nach Hause komme. – DarenW
Sie können 'reininterpret_cast' verwenden, wenn Sie nicht definiertes Verhalten riskieren möchten. –
Als beiseite, betrachten Vorlagen, wenn Ihr Code es sich leisten kann: 'Vorlage void blarf (Std :: Vektor &);' –