analizer 26.07.2011 08:46 mcabber

никогда ленивые вычисления не были так удобны: http://ideone.com/7FrBK , кто-нибудь допилите туда передачу ленивых значений внутрь биндинга для новых ленивых значений.

Recommended by:

@ulidtko: я выдрал себе глаза.

and @magog
1. werehuman 26.07.2011 08:48 Psi+

странный у вас code style

2. werehuman 26.07.2011 08:50 Psi+

и да, оператор приведения к нужному типу — это не выглядит удобным. Проще запилить метод get()

3. eurekafag 26.07.2011 08:51 WOK

Ленивые вычисления — это когда тебе на работе дают задачу вычислить что-то, а ты это делаешь только к концу недели, потому что жара и впадлу. :ultrawogun:

4. werehuman 26.07.2011 08:53 Psi+

спрашивается, зачем ты запилил TBinder, если он тупо вызывает IBinder::operator() и больше никакой функции не несёт.

5. magogwerehuman /4 26.07.2011 08:53 l12

что бы его можно было в любой момент расширить, наверное

6. werehumanmagog /5 26.07.2011 08:54 Psi+

например?

7. ulidtkowerehuman /4 26.07.2011 08:56 lunatic asylum

> TBinder
> IBinder

DAD NO, NOT DELPHI AGAIN

8. analizerwerehuman /4 26.07.2011 08:57 mcabber

чтобы хранить любой биндер.

9. werehumananalizer /8 26.07.2011 08:57 Psi+

а зачем их может быть несколько?

10. analizerwerehuman /9 26.07.2011 09:06 mcabber

затем что я туда могу передать биндер от одного параметра, а могу — от двух

11. utros 26.07.2011 12:48 eoranged

Костыльно-ориентированное программирование в действии!

12. analizerutros /11 26.07.2011 12:50 mcabber

в чём же костыль?

13. eurekafaganalizer /12 26.07.2011 12:51 WOK

В языке.

14. analizereurekafag /13 26.07.2011 12:52 mcabber

где именно?

15. werehumananalizer /14 26.07.2011 12:52 Psi+

сплошь и рядом

16. eurekafaganalizer /14 26.07.2011 12:53 WOK

В выборе языке имелось в виду.

17. analizerwerehuman /15 26.07.2011 12:53 mcabber

т.е. вы не можете указать точно, что именно вам не нравится?

18. analizereurekafag /16 26.07.2011 12:53 mcabber

предлагаете использовать питон? нет пути.

19. eurekafaganalizer /18 26.07.2011 12:54 WOK

Предлагаю думать своей головой.

20. werehumananalizer /17 26.07.2011 12:54 Psi+

самое запоминающееся — нельзя бросать исключения в деструкторе, эллипсис можно использовать только с POD

21. werehumananalizer /18 26.07.2011 12:55 Psi+

питон — штука такая, тут нужно сначала подумать, стоит ли его использовать или по прежнему ебаться с плюсами

22. analizerwerehuman /20 26.07.2011 12:56 mcabber

можно бросать исключения в деструкторе, ниасилятор детектед. алсо, как ты мог заметить — пример на C++0x, область применения эллипсиса сильно расширилась.

23. magogwerehuman /21 26.07.2011 12:56 Azoth

скорее стоит подумать — реально ли ты так низко пал, что бы начать писать на питоне или у тебя еще есть шанс подняться

24. werehumananalizer /22 26.07.2011 12:56 Psi+

я не слежу за C++0x

25. analizereurekafag /19 26.07.2011 12:56 mcabber

я думаю компилятором.

26. werehumanmagog /23 26.07.2011 12:56 Psi+

талосто

27. utrosanalizer /18 26.07.2011 12:56 eoranged

Юзай Хаскель, идиот!

28. werehumananalizer /22 26.07.2011 12:57 Psi+

то есть если я посреди деструктора сделаю throw 123, то ты утверждаешь, что всё будет ок?

29. analizerwerehuman /28 26.07.2011 12:58 mcabber

да, если ты знаешь что такое std::unhandled_exception();

30. werehumananalizer /29 26.07.2011 12:59 Psi+

увы, не знал

31. magoganalizer /29 26.07.2011 12:59 Azoth

это нищеброд-питонист. Откуда ему знать такое!

32. werehumananalizer /29 26.07.2011 13:00 Psi+

кинь в меня докой

34. analizerwerehuman /32 26.07.2011 13:01 mcabber

uncaught_exception — возвращает bool, означающий раскручивается сейчас стек или нет

35. werehumananalizer /34 26.07.2011 13:01 Psi+

а почему магог не поправил тебя?

36. magogwerehuman /35 26.07.2011 13:02 Azoth

потому что магог пилит личркафты и не вчитывается в сообщения

37. analizerwerehuman /35 26.07.2011 13:02 mcabber

а почему ты спрашиваешь у меня?

38. werehumananalizer /37 26.07.2011 13:03 Psi+

я как бы у вас обоих спрашивал. Теперь у тебя.
Throwing another exception while this function returns true may result in the termination of the exception handling proccess (a call to terminate).
То есть мне ещё надо думать, где прокатит try-catch, а где оно приведёт к сегфолту и где надо втыкать эту хрень?

39. analizerwerehuman /38 26.07.2011 13:04 mcabber

именно так

40. werehumananalizer /39 26.07.2011 13:04 Psi+

нахуй так жить?

41. eurekafaganalizer /39 26.07.2011 13:05 WOK

НИХУЯ ЕБАТЬ

42. analizerwerehuman /40 26.07.2011 13:06 mcabber

чтобы знать что нельзя кидать эксепшен во время раскрутки другого эксепшена.

43. utrosanalizer /29 26.07.2011 13:07 eoranged

Опять костыли. Костыль на костыле и костылём погоняет

44. werehumananalizer /42 26.07.2011 13:15 Psi+

http://pastebin.com/HQrGqCSW в плюсцах так можно?

45. analizerwerehuman /44 26.07.2011 13:26 mcabber

да. почему нет? тонкости начинаются, когда исключение брошенное в деструкторе выходит за его пределы

46. werehumananalizer /45 26.07.2011 13:27 Psi+

в доках джавы написано, что если эксцепшн уйдёт за пределы финализатора, то объект просто останется висеть в памяти

47. analizerwerehuman /46 26.07.2011 13:29 mcabber

ой, ли? сам попробуй catch убрать и скомпилить.

48. werehumananalizer /47 26.07.2011 13:32 Psi+

[werehuman@lithium /tmp] $ javac Test.java
[werehuman@lithium /tmp] $ java Test
Constructor
Constructor
Finalizing
first
Finalizing
first
[werehuman@lithium /tmp] $ echo $?
0

На всякий случай сделал два таких объекта. У обоих проходит финализация, как видишь.
http://pastebin.com/DGedxnT1

49. analizerwerehuman /48 26.07.2011 13:36 mcabber

ок, т.е. случилась ошибка и об этом никак невозможно узнать?

50. werehumananalizer /49 26.07.2011 13:38 Psi+

Any exception thrown by the finalize method causes the finalization of this object to be halted, but is otherwise ignored.
То есть да

51. analizerwerehuman /50 26.07.2011 13:39 mcabber

ок, и вы всё ещё считаете плюсцовый terminate костылём?

52. werehumananalizer /51 26.07.2011 13:40 Psi+

фишка в том, что джава вообще никогда не падает от эксцепшна. А плюсцы упадут даже если try-catch поставить на операторе delete

53. magogwerehuman /52 26.07.2011 13:41 Azoth

потому что джава юзаю gc и работает под виртуальной машиной. Ты пиздец сравниваешь. Перл так вообще не падает никогда

54. analizerwerehuman /52 26.07.2011 13:41 mcabber

с чего бы вдруг им так падать? если в деструкторе было выкинуто ровно одно исключение, то try-catch его нормально поймает

55. werehumanmagog /53 26.07.2011 13:43 Psi+

я когда-то через Qt делал хитрую штуку (через QEvent что-ли, уже не помню), она отлавливала все пропущенные эксцепшны, а там уже обрабатывай как хочешь

56. utroswerehuman /55 26.07.2011 13:46 eoranged

В плюсах для этого есть специальный костыль-обработчик, но я не помню как он называется.

Do you really want to delete ?