Compiler hints, inlining and syntax consistency
Jakob Ovrum
jakobovrum at gmail.com
Sat Dec 28 08:35:39 PST 2013
On Saturday, 28 December 2013 at 13:03:30 UTC, Ola Fosheim
Grøstad wrote:
> On Saturday, 28 December 2013 at 11:58:48 UTC, Jakob Ovrum
> wrote:
>> This is a terrible example - in D it's generally accepted that
>> such a `length` function should NOT be provided at all.
>
> Correction: in the D-community it is generally accepted.
No.
I have *no* idea where you got this idea from. D and its standard
library follows in the footsteps of STL when it comes to the
algorithmic complexity of primitives, and this has been an
important tenet from *at least* the early days of D2. A few
examples include std.container's maximum complexity requirement
for primitives (including `length`) and the existence of
std.range.walkLength. A recent example of enforcement includes
the rejection of adding binary `in` functionality for
non-associative arrays.
> @disable and (@obsolete) etc can safely be ignored for a sound
> program, it is a hint for the compiler to check the integrity
> of the logic, but it does not affect the semantics of a sound
> program.
You could say this about any restriction in the type system.
(`@obsolete`? Did you mean `deprecated`?)
More information about the Digitalmars-d
mailing list