analizer
26.07.2011 08:46 mcabber
никогда ленивые вычисления не были так удобны: http://ideone.com/7FrBK , кто-нибудь допилите туда передачу ленивых значений внутрь биндинга для новых ленивых значений.
никогда ленивые вычисления не были так удобны: http://ideone.com/7FrBK , кто-нибудь допилите туда передачу ленивых значений внутрь биндинга для новых ленивых значений.
странный у вас code style
и да, оператор приведения к нужному типу — это не выглядит удобным. Проще запилить метод get()
Ленивые вычисления — это когда тебе на работе дают задачу вычислить что-то, а ты это делаешь только к концу недели, потому что жара и впадлу. :ultrawogun:
спрашивается, зачем ты запилил TBinder, если он тупо вызывает IBinder::operator() и больше никакой функции не несёт.
что бы его можно было в любой момент расширить, наверное
например?
> TBinder
> IBinder
DAD NO, NOT DELPHI AGAIN
чтобы хранить любой биндер.
а зачем их может быть несколько?
затем что я туда могу передать биндер от одного параметра, а могу — от двух
Костыльно-ориентированное программирование в действии!
в чём же костыль?
В языке.
где именно?
сплошь и рядом
В выборе языке имелось в виду.
т.е. вы не можете указать точно, что именно вам не нравится?
предлагаете использовать питон? нет пути.
Предлагаю думать своей головой.
самое запоминающееся — нельзя бросать исключения в деструкторе, эллипсис можно использовать только с POD
питон — штука такая, тут нужно сначала подумать, стоит ли его использовать или по прежнему ебаться с плюсами
можно бросать исключения в деструкторе, ниасилятор детектед. алсо, как ты мог заметить — пример на C++0x, область применения эллипсиса сильно расширилась.
скорее стоит подумать — реально ли ты так низко пал, что бы начать писать на питоне или у тебя еще есть шанс подняться
я не слежу за C++0x
я думаю компилятором.
талосто
Юзай Хаскель, идиот!
то есть если я посреди деструктора сделаю throw 123, то ты утверждаешь, что всё будет ок?
да, если ты знаешь что такое std::unhandled_exception();
увы, не знал
это нищеброд-питонист. Откуда ему знать такое!
кинь в меня докой
uncaught_exception — возвращает bool, означающий раскручивается сейчас стек или нет
а почему магог не поправил тебя?
потому что магог пилит личркафты и не вчитывается в сообщения
а почему ты спрашиваешь у меня?
я как бы у вас обоих спрашивал. Теперь у тебя.
Throwing another exception while this function returns true may result in the termination of the exception handling proccess (a call to terminate).
То есть мне ещё надо думать, где прокатит try-catch, а где оно приведёт к сегфолту и где надо втыкать эту хрень?
именно так
нахуй так жить?
НИХУЯ ЕБАТЬ
чтобы знать что нельзя кидать эксепшен во время раскрутки другого эксепшена.
Опять костыли. Костыль на костыле и костылём погоняет
http://pastebin.com/HQrGqCSW в плюсцах так можно?
да. почему нет? тонкости начинаются, когда исключение брошенное в деструкторе выходит за его пределы
в доках джавы написано, что если эксцепшн уйдёт за пределы финализатора, то объект просто останется висеть в памяти
ой, ли? сам попробуй catch убрать и скомпилить.
[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
ок, т.е. случилась ошибка и об этом никак невозможно узнать?
Any exception thrown by the finalize method causes the finalization of this object to be halted, but is otherwise ignored.
То есть да
ок, и вы всё ещё считаете плюсцовый terminate костылём?
фишка в том, что джава вообще никогда не падает от эксцепшна. А плюсцы упадут даже если try-catch поставить на операторе delete
потому что джава юзаю gc и работает под виртуальной машиной. Ты пиздец сравниваешь. Перл так вообще не падает никогда
с чего бы вдруг им так падать? если в деструкторе было выкинуто ровно одно исключение, то try-catch его нормально поймает
я когда-то через Qt делал хитрую штуку (через QEvent что-ли, уже не помню), она отлавливала все пропущенные эксцепшны, а там уже обрабатывай как хочешь
В плюсах для этого есть специальный костыль-обработчик, но я не помню как он называется.