digitalmars.D.learn - Phobos - pure, const, safe, nothrow
- simendsjo (3/3) Sep 29 2013 What is the status of adding these annotations to phobos? It's
- monarch_dodra (20/23) Sep 29 2013 Most of phobos is templated, meaning it relies on inference.
- Joseph Rushton Wakeling (5/9) Oct 02 2013 In various recent template-related explorations I have often wished it w...
- Kenji Hara (7/20) Oct 02 2013 std.typecons.Proxy is designed to work transparently for the
What is the status of adding these annotations to phobos? It's difficult to use these until phobos gets them. E.g. to! and format is not pure.
Sep 29 2013
On Sunday, 29 September 2013 at 09:00:56 UTC, simendsjo wrote:What is the status of adding these annotations to phobos? It's difficult to use these until phobos gets them. E.g. to! and format is not pure.Most of phobos is templated, meaning it relies on inference. These functions are pure/nothrow/safe, if their implementations are. Also, since they are templates, more often then not, they depend on their parameters, making them *conditionally* pure/nothrow/safe. Under such circumstances, there is simply no way to *mark* them as such (even if they are). Efforts have been made recently for more "base" functions to be pure/nothrow (and ctfe btw), especially in std.string and std.array. *If* they can be marked as such, then (right now), we are tending to mark them as such. As for to!: it really depends on the parameters. Plus, to! is very complicated. If there are specific conversion types you think should be safe, but aren't, then please file a report, (or just quickly say what you had in mind here). I have an open pull that makes string transcoding "to!SomeStringType(someOtherStringInstance)" safe and pure. It still needs to get reviewed though. It can't be nothrow due to UTF though.
Sep 29 2013
On 29/09/13 11:37, monarch_dodra wrote:On Sunday, 29 September 2013 at 09:00:56 UTC, simendsjo wrote:In various recent template-related explorations I have often wished it was possible to infer function attributes from template arguments .... :-( See e.g. Proxy, which loses all the corresponding attributes of the underlying type's methods.What is the status of adding these annotations to phobos? It's difficult to use these until phobos gets them. E.g. to! and format is not pure.Most of phobos is templated, meaning it relies on inference.
Oct 02 2013
On Wednesday, 2 October 2013 at 13:31:04 UTC, Joseph Rushton Wakeling wrote:On 29/09/13 11:37, monarch_dodra wrote:std.typecons.Proxy is designed to work transparently for the underlying method qualifiers. But I also agree that the implementation is still insufficient. Could you show us the "not working" case? It would be much help. Kenji HaraOn Sunday, 29 September 2013 at 09:00:56 UTC, simendsjo wrote:In various recent template-related explorations I have often wished it was possible to infer function attributes from template arguments .... :-( See e.g. Proxy, which loses all the corresponding attributes of the underlying type's methods.What is the status of adding these annotations to phobos? It's difficult to use these until phobos gets them. E.g. to! and format is not pure.Most of phobos is templated, meaning it relies on inference.
Oct 02 2013