Дядьку — а розкажите пожалуйтста, как устроены блоки?
Вот к примеру почему мы можем использовать в блоке локальную переменную из вне, а блок потом вызывается черти откуда, а переменная сохраняется, правда адрес у нее другой, но значение верное — какой механизмь тутычки фунциклирует.
Но есть и другие парни, как раз живущие и в реале, и понимающие что может быть когда произойдет коллизия государственной бюрократической машины и ИТ-мира.
Да айтишникам давно пора начать принимать активное участие в законотворчестве, а то както не айс выходит да и не только про интернет, я тут читал отчет о работе одной оппозиционной тетки деппутата про то как «помоч украинскому ИТ», рафинированейший бред — на первом месте защита авторских прав, а на втором нехватка иностранных инвесторов.
Отствить панику, ну что вы как в самом деле? Интернет как был свободным так им и остается — любые попытки всяких властьимущих ограничить его это попытки вычерпать чайной ложкой озеро Байкал. Да современное поколение не знает что такое самоудовлетворять себя на картинках, у них есть порнотьюбы — они теперь вышли на качественно новый уровень, уж закого так за них переживать не стоит, да нет обмена винтами — а зачем, если я спокойно могу ридти с флешкой как ваш старый винт обьемом, если уже канал не такой толстый что проще придти. Свободы нет? Да я как качал гектары софта и музяки на халяву так и качаю, следят за мной (да на том конце провайдера сидит злой чекист и жаждет меня репрессировать), ну пусть следят — все хне переловят.
int* p = new int(10);//как бе сконструировали инт
Foo* p_foo = (Foo*)malloc(sizeof(Foo));//ниче не конструировали
new(p_foo) Foo(19, false,«description»);//вау — обьект сконструировался!
п1. Да пожалуйста — математическая функция для которой -1 может быть результатом вычислений, функция возвращающая объект не ввиде указателя, функция имеющая тип void (внезапно) или возвращающая булевый тип — короче на практике зарезервировать -1 как дескриптор на все ошибки та еще задача.
Я сам, если честно, против setjmp — на моей практике ни один отладчик брошенное таким образом эрзац исключение корректно не обрабатывал, откуда оно было брошено и почему выяснить удавалось только ручной трассировкой и это печально.
Такой подход неправилен тем что:
1)Тип возвращаемого значения не всегда совместим с дескриптором ошибки
2)Обрабатывать исключения можно только на шаг выше колстека, а екзепшен можно кинуть куда угодно.
П.С. Отношение плотно работающих с «железом» программистов к исключениям варьируется от «лучше не надо», до «категорически против» — потому в ядре линукс их нет, в недрах епл кста тоже запрещено использовать исключения при работе с компонентами ОС — такие дела, почему не знаю.
А какое финансирование, космическая гонка, ресурсов для того чтоб показать что мы умеем не жалко — при таких условиях конечно можно не только продолжать работать несмотря на неудачи, но и получить на это средства.
Ну какая мы интеллигенция? Какая интеллигенция может насинячится в пятницу, матерится на рабочем месте и вваливатся на рабочее место в мотоекипировке/камуфляже для пинбола/костюме для ролевых игр?
Может лучше напечатать сопло из металлопорошка? А то пластик может помимо описанных проблем еще и обьем изменять в зависимости от температуры — а тут как я понимаю это весьма критично, деталь измерительного прибора всеже.
Да шо вы понимаете, молодой человек, в [страйк] в колбасных обрезках [/страйк] в ценностях сельских дискотек, пока вы причисляете себе хороший вкус всякими Иззи Озборнами, Аеросмитом и прочими свинцовыми дирижаблями народ серцем выбирает Сердючку и группу Комбинация и пляшет после стопаря так что вам и не снилось.
Я первую задачу вообще решил вот так — скажите я нормален?
Я искренне щитаю что программисту нужна математика — но вместо математического решения я выдавил из своих мозгов это ;( ideone.com/8nDLuA
Вот к примеру почему мы можем использовать в блоке локальную переменную из вне, а блок потом вызывается черти откуда, а переменная сохраняется, правда адрес у нее другой, но значение верное — какой механизмь тутычки фунциклирует.
int* p = new int(10);//как бе сконструировали инт
Foo* p_foo = (Foo*)malloc(sizeof(Foo));//ниче не конструировали
new(p_foo) Foo(19, false,«description»);//вау — обьект сконструировался!
Я сам, если честно, против setjmp — на моей практике ни один отладчик брошенное таким образом эрзац исключение корректно не обрабатывал, откуда оно было брошено и почему выяснить удавалось только ручной трассировкой и это печально.
1)Тип возвращаемого значения не всегда совместим с дескриптором ошибки
2)Обрабатывать исключения можно только на шаг выше колстека, а екзепшен можно кинуть куда угодно.
П.С. Отношение плотно работающих с «железом» программистов к исключениям варьируется от «лучше не надо», до «категорически против» — потому в ядре линукс их нет, в недрах епл кста тоже запрещено использовать исключения при работе с компонентами ОС — такие дела, почему не знаю.
Я искренне щитаю что программисту нужна математика — но вместо математического решения я выдавил из своих мозгов это ;(
ideone.com/8nDLuA