digitalmars.D.learn - How to read this signature? (writeTo in DIP9)
- Graham Fawcett (10/10) Nov 19 2010 Hi folks,
- bearophile (4/11) Nov 19 2010 "scope" means that the sink delegate is not a true closure, its outer sc...
- Graham Fawcett (3/17) Nov 19 2010 Ah! Thanks very much, bearophile!
Hi folks, I'm having trouble deciphering this function signature, which appears in the DIP9 proposal: void writeTo(scope delegate(in char[] data) sink, string format = null) const // from http://prowiki.org/wiki4d/wiki.cgi?LanguageDevel/DIPs/DIP9 Particularly, how does "scope" modify the delegate, and what is the meaning of the trailing "const"? Thanks, Graham
Nov 19 2010
Graham Fawcett:void writeTo(scope delegate(in char[] data) sink, string format = null) const // from http://prowiki.org/wiki4d/wiki.cgi?LanguageDevel/DIPs/DIP9 Particularly, how does "scope" modify the delegate, and what is the meaning of the trailing "const"?"scope" means that the sink delegate is not a true closure, its outer scope is never allocated on the heap. "const" member functions means that inside it the "this" is const, so writeTo() can't modify the class/struct attributes. Bye, bearophile
Nov 19 2010
On Fri, 19 Nov 2010 14:43:03 -0500, bearophile wrote:Graham Fawcett:Ah! Thanks very much, bearophile! Grahamvoid writeTo(scope delegate(in char[] data) sink, string format = null) const // from http://prowiki.org/wiki4d/wiki.cgi?LanguageDevel/DIPs/DIP9 Particularly, how does "scope" modify the delegate, and what is the meaning of the trailing "const"?"scope" means that the sink delegate is not a true closure, its outer scope is never allocated on the heap. "const" member functions means that inside it the "this" is const, so writeTo() can't modify the class/struct attributes.
Nov 19 2010