Использование 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