Mit std::is_convertible:Wann ist std :: is_convertible primitive Typen konvertierbar?
bool i2c = std::is_convertible<int, char>::value;
bool c2i = std::is_convertible<char, int>::value;
bool f2i = std::is_convertible<float, int>::value;
std::cout << std::boolalpha;
std::cout << i2c << '\n'; //prints true
std::cout << c2i << '\n'; //prints true
std::cout << f2i << '\n'; //prints true
Ich konnte nicht bekommen, warum die Ausgabe true
für alle oben genannten Fälle sein musste, wenn sie in wandelbare (Typkonvertierungen, die Genauigkeitsverlust führen kann) zu sein schien . Oder sollen wir die primitiven Typen nicht mit std::is_convertible
vergleichen?
Aber sie sind alle konvertierbar ... Sie können ein 'int' in ein' char' oder ein 'float' in ein' int' umwandeln, wenn Sie möchten. Warum denkst du, kannst du nicht? – SirGuy
Wenn sie umwandelbar sind. ;) –
@SauravSahu Weil es konvertierbar ist – SirGuy