Войти
ПрограммированиеФорумГрафика

Я не понимаю что происходит: камера на углах Эйлера (3 стр)

Страницы: 1 2 3 4 5 6 7 Следующая »
#30
15:21, 11 июня 2018

Great V.
> Т.е. я могу обойтись без декларации типа переменной
Ты думаешь, что можешь обойтись, потому что в силу нехватки опыта ещё не встречался с возникающими при этом проблемами.
А именно - когда этот код начнёт читать другой человек (например, Грейт Ви пять лет спустя), то будут постоянно возникать вопросы рода «dx и dy это int, float или double»? В этом примере оно, может, и не настолько критично; а вот в других местах вполне может привести и к полному непонимаю, и даже к неправильному понимаю, с последующим совершением ошибок и наступанием в UB.

Zab
> Какая же это "подборка UB"? Это глупейшие детские ошибки.
Оно так выглядит, потому что ради иллюстративности я убрал из программы всё ненужное, выделил ошибку жирным шрифтом и подписал большими буквами «ПРОГРАММА ЛОМАЕТСЯ ВОТ ЗДЕСЬ».
Если хочешь более практического примера - вот. Не подглядывая в историю коммитов - сможешь сходу определить, где ошибка? Из аномального поведения - только ругательства отладчика студии о запоротой куче на выходе из main. Покажи мне на мою детскую ошибку.


#31
15:28, 11 июня 2018

Delfigamer
Если ты лазаешь за границы массивов и по несуществующим ссылкам, кто-то в этом виноват, кроме тебя?

Я бы на твоем месте подобные ляпы никому не показывал. Стыдно. Случись такое несколько раз на работе - уволят же за полную профнепригодность. Один-два случая еще можно списать на опечатки, но и их быть не должно.

#32
16:53, 11 июня 2018

Delfigamer
> Ты думаешь, что можешь обойтись, потому что в силу нехватки опыта ещё не
> встречался с возникающими при этом проблемами.
Не поверишь - встречался и не раз.
Но все они были не из-за auto, а из-за изнасилованных идентификаторов или кривой архитектуры. А это уже отдельные проблемы, которые к сабжу не имеет никакого отношения.

> dx и dy это int, float или double
Ну если именно такой вопрос у меня возникнет - то я либо воспользуюсь IDE, либо вручную отслежу цепочку связей этой переменной.

А Инуенда скорее всего не принимает auto не потому что он (auto) плох (ведь он хорош).
А либо потому что Инуенда старый ворчун не могущий в современность, либо в детстве auto делал с ним жуткие вещи и теперь у него психологическая травма.

#33
17:16, 11 июня 2018

entryway
> http://rextester.com/FWKV36110
А переполнение инта в плюсах это тоже чтоль ub? А переполнение int32_t тоже?

#34
19:05, 11 июня 2018

Обращение всем
Хватит вам уже про auto. Я пришел с Python. Там в голове тип выводить надо. Лучше конкретно про dinput 

#35
19:47, 11 июня 2018

IBets
> Там в голове тип выводить надо

там динамик тайпинг же

#36
19:48, 11 июня 2018

Great V.
> либо в детстве auto делал с ним жуткие вещи

да, auto в старом С был, это ещё от 70 годов - тебя тогда ещё и в проекте не было

#37
19:56, 11 июня 2018

IBets
> Хватит вам уже про auto. Я пришел с Python. Там в голове тип выводить надо.
> Лучше конкретно про dinput 
а с чего ты взял что проблема в dinput?

#38
20:11, 11 июня 2018

Aroch
В общем проблема действительно в нем. В код я сделал вот такое изменение и все заробило

    ILINE auto Input::UpdateStateKeyboard() {      

      if (FAILED(m_pDeviceKeyboard->Poll()))       
        while (m_pDeviceKeyboard->Acquire() == DIERR_INPUTLOST);                
      DX::ThrowIfFailed(m_pDeviceKeyboard->GetDeviceState(sizeof(KeysState), &m_BufKeys));
    }

    ILINE auto Input::UpdateStateMouse() {
      if (FAILED(m_pDeviceMouse->Poll()))       
        while (m_pDeviceMouse->Acquire() == DIERR_INPUTLOST);            
      DX::ThrowIfFailed(m_pDeviceMouse->GetDeviceState(sizeof(MouseState), &m_BufMouse));
    }
#39
20:12, 11 июня 2018

Zab
> Если ты лазаешь за границы массивов и по несуществующим ссылкам, кто-то в этом
> виноват, кроме тебя?
> Я бы на твоем месте подобные ляпы никому не показывал. Стыдно. Случись такое
> несколько раз на работе - уволят же за полную профнепригодность. Один-два
> случая еще можно списать на опечатки, но и их быть не должно.
Так в каком месте ляп? Если это так стыдно, то тебе не составит труда найти проблемное место.

MrShoor
> А переполнение инта в плюсах это тоже чтоль ub? А переполнение int32_t тоже?
Судя по всему - да и тоже да. По правилам, переполнять можно только беззнаковые целые.

Great V.
> Ну если именно такой вопрос у меня возникнет - то я либо воспользуюсь IDE, либо
> вручную отслежу цепочку связей этой переменной.
Сложно, это ж надо либо запускать целый IDE (я, например, программирую в блокноте), либо открывать ещё кучу файлов, либо, в худшем случае, искать имена по файлам. Кроме того, если код читается с веб-страницы - например, на гитхабе - то оба вариантся становятся жутко геморройными.
Тип переменной - это такая же документация, как и её название и служит точно тем же целям - сообщает о её использовании. Сравни, например,

Vector3 hit = raycast(origin, direction);
Actor* hit = raycast(origin, direction);
RaycastResult hit = raycast(origin, direction);
#40
20:18, 11 июня 2018

innuendo
Так и что в голове тип держать надо. А здесь в IDE подсвечивается. Пишу как на C#

#41
21:52, 11 июня 2018

Delfigamer
> я, например, программирую в блокноте
На этом и закончим : )

#42
21:58, 11 июня 2018

Great V.
Плюсую. В блокноте только на Python писать можно

#43
23:06, 11 июня 2018

Great V.
> На этом и закончим : )
Закончились аргументы?
К тому же, ты закончил не до конца:
Delfigamer
> Кроме того, если код читается с веб-страницы - например, на гитхабе - то оба
> вариантся становятся жутко геморройными.
Тоже пусть катятся лесом? Пускай на каждый сниппет ставят себе студию, скачивают весь гит и генерируют файлы проекта?

IBets
> Плюсую. В блокноте только на Python писать можно
Вот только почему-то твоя IDE от UB всё равно не спасла.

Выходит, на пайтоне можно писать и в среде, и в блокноте; а на крестах - и тут нельзя, и там не получается, лол.
#44
23:45, 11 июня 2018

Delfigamer
Ну статическим анализатором надо прогнать. Я думаю у меня ошибка в шаблонах где-то, но компилятор все равно создал код. Такое бывает. Но все равно все очень странно потому что я без перекомпиляции запускаю .exe. И он всегда ведет себя по разному. То FPS низкий, то черный экран, то Error SwapChain->Present, то стабильная работа

Страницы: 1 2 3 4 5 6 7 Следующая »
ПрограммированиеФорумГрафика

Тема в архиве.