std::is_convertibleを使用する:std :: is_convertibleはいつプリミティブ型をコンバーチブルと考えますか?
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
出力は、彼らがして、コンバーチブルであるように思われた上記のすべてのケースについてtrue
、(精度の損失を引き起こす可能性があります型変換)しなければならなかった理由を、私は得ることができませんでした。または、std::is_convertible
を使用してプリミティブ型を比較することはできませんか?
しかし、それらはすべてコンバーチブルです。あなたが望むなら、 'int'を' char'または 'float'に' int'をキャストできます。なぜあなたはできないと思いますか? – SirGuy
変換可能なとき。 ;) –
@SauravSahuそれはコンバーチブルなので – SirGuy