digitalmars.D.learn - Throwing constructors and member destructors
- Boris-Barboris (12/12) Nov 20 2018 https://run.dlang.io/is/LdylJX
- Alex (15/27) Nov 20 2018 For example:
- Stanislav Blinov (3/15) Nov 20 2018 https://dlang.org/changelog/2.083.0.html#reboot14246
- Boris-Barboris (3/4) Nov 20 2018 Wording "object" means both classes and structs?
- Boris-Barboris (3/4) Nov 20 2018 Nvm, found the info in the issue tracker, thank you for the link.
- Stanislav Blinov (4/9) Nov 20 2018 You're welcome. It's one of those problems that were out there
https://run.dlang.io/is/LdylJX Notice no "B destructor" line in stdout. Just got bitten by the assumption that my Buffer struct that transactionally aquires multiple external resources in constructor will rollback via member destructors that were successfully completed before the throw. Can I get a clarification about current semantics? Should I essentially never throw in constructors if I want to rely on scope-based RAII? And before we start a 10-page argument about the ideology of constructors, I would mostly just like to hear that this is documented somewhere, because I have certanly missed it.
Nov 20 2018
On Tuesday, 20 November 2018 at 13:01:40 UTC, Boris-Barboris wrote:https://run.dlang.io/is/LdylJX Notice no "B destructor" line in stdout. Just got bitten by the assumption that my Buffer struct that transactionally aquires multiple external resources in constructor will rollback via member destructors that were successfully completed before the throw. Can I get a clarification about current semantics? Should I essentially never throw in constructors if I want to rely on scope-based RAII? And before we start a 10-page argument about the ideology of constructors, I would mostly just like to hear that this is documented somewhere, because I have certanly missed it.For example: https://books.google.de/books?id=5_eoCwAAQBAJ&pg=PA104&lpg=PA104&dq=dlang+rely+destructor&source=bl&ots=p33jiNUKBq&sig=yw1ymCzaRaueQ8yDDMjP75iRDYI&hl=de&sa=X&ved=2ahUKEwjosrGlhePeAhVrgM4BHcU6DEAQ6AEwBXoECAMQAQ#v=onepage&q=dlang%20rely%20destructor&f=false book{parker2015learning, title={Learning D}, author={Parker, M.}, isbn={9781785289347}, url={https://books.google.de/books?id=5\_eoCwAAQBAJ}, year={2015}, publisher={Packt Publishing} page=104 } But yeah... I had troubles to find such a clear statement on dlang.org too...
Nov 20 2018
On Tuesday, 20 November 2018 at 13:01:40 UTC, Boris-Barboris wrote:https://run.dlang.io/is/LdylJX Notice no "B destructor" line in stdout. Just got bitten by the assumption that my Buffer struct that transactionally aquires multiple external resources in constructor will rollback via member destructors that were successfully completed before the throw. Can I get a clarification about current semantics? Should I essentially never throw in constructors if I want to rely on scope-based RAII? And before we start a 10-page argument about the ideology of constructors, I would mostly just like to hear that this is documented somewhere, because I have certanly missed it.https://dlang.org/changelog/2.083.0.html#reboot14246
Nov 20 2018
On Tuesday, 20 November 2018 at 13:20:08 UTC, Stanislav Blinov wrote:https://dlang.org/changelog/2.083.0.html#reboot14246Wording "object" means both classes and structs?
Nov 20 2018
On Tuesday, 20 November 2018 at 13:20:08 UTC, Stanislav Blinov wrote:https://dlang.org/changelog/2.083.0.html#reboot14246Nvm, found the info in the issue tracker, thank you for the link.
Nov 20 2018
On Tuesday, 20 November 2018 at 13:28:21 UTC, Boris-Barboris wrote:On Tuesday, 20 November 2018 at 13:20:08 UTC, Stanislav Blinov wrote:You're welcome. It's one of those problems that were out there for ages, and luckily it now is getting attention.https://dlang.org/changelog/2.083.0.html#reboot14246Nvm, found the info in the issue tracker, thank you for the link.
Nov 20 2018