Phobos - pure, const, safe, nothrow
monarch_dodra
monarchdodra at gmail.com
Sun Sep 29 02:37:25 PDT 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.
More information about the Digitalmars-d-learn
mailing list