Вопросы с тегом «casting»

52
Почему javac допускает некоторые невозможные приведения, а другие нет?

Если я пытаюсь привести Stringк a java.util.Date, компилятор Java ловит ошибку. Так почему же компилятор не помечает следующее как ошибку? List<String> strList = new ArrayList<>(); Date d = (Date) strList; Конечно, JVM генерирует a ClassCastExceptionво время выполнения, но компилятор не...

38
Почему эта заявка на разыменование предупреждающего указателя типа зависит от компилятора?

Я читал различные сообщения о переполнении стека RE: ошибка разыменовывающего указателя типа. Насколько я понимаю, ошибка, по сути, является предупреждением компилятора об опасности доступа к объекту через указатель другого типа (хотя, похоже, для этого сделано исключение char*), что является...

31
Как правильно преобразовать 2 байта в 16-разрядное целое число со знаком?

В этом ответе , zwol сделал это заявление: Правильный способ преобразования двух байтов данных из внешнего источника в 16-разрядное целое число со знаком - с помощью вспомогательных функций, таких как: #include <stdint.h> int16_t be16_to_cpu_signed(const uint8_t data[static 2]) { uint32_t val...

28
Почему в C ++ отличается static_cast <unsigned> от отрицательных чисел, если число постоянное или нет

Какие правила С ++ означают, что равно равно ложно ? Данный: float f {-1.0}; bool equal = (static_cast<unsigned>(f) == static_cast<unsigned>(-1.0)); Например, https://godbolt.org/z/fcmx2P #include <iostream> int main() { float f {-1.0}; const float cf {-1.0}; std::cout <<...

9
Приведение ссылки на функцию с неверным указателем?

Я отслеживаю ошибку в стороннем коде и сузил ее до чего-то вроде. use libc::c_void; pub unsafe fn foo() {} fn main() { let ptr = &foo as *const _ as *const c_void; println!("{:x}", ptr as usize); } При запуске на стабильной версии 1.38.0 выводится указатель на функцию, но бета (1.39.0-бета.6) и...

9
Неявное приведение статического типа (приведение) в Haskell

проблема Рассмотрим следующую проблему дизайна в Haskell. У меня есть простой, символический EDSL, в котором я хочу выразить переменные и общие выражения (многомерные полиномы), такие как x^2 * y + 2*z + 1. Кроме того, я хочу выразить некоторые символические уравнения над выражениями, скажем x^2 +...