Create custom data types
Dennis Ritchie via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Wed Apr 29 12:53:38 PDT 2015
On Wednesday, 29 April 2015 at 17:52:27 UTC, Ali Çehreli wrote:
> On 04/29/2015 10:17 AM, Dennis Ritchie wrote:
>> Hi,
>> Is it possible to create simple D user-defined data types
>> without the
>> use of classes and other OOP?
>>
>> For example, in Ada is done as follows:
>>
>> -----
>> type balance is new Integer range -32_000 .. 32_000;
>
> Something similar to the following solution should be in Phobos:
>
> import std.exception;
>
> struct Balance
> {
> int value_;
>
> alias value this;
>
> @property int value() const
> {
> enforce((value_ >= -32_000) &&
> (value_ <= 32_000));
>
> return value_;
> }
>
> @property void value(int v)
> {
> value_ = v;
> }
> }
>
> unittest
> {
> auto b = Balance(42);
> assert(b == 42);
>
> b = 40_000;
>
> void foo(int) {}
> assertThrown(foo(b));
> }
>
> void main()
> {}
Thanks.
On Wednesday, 29 April 2015 at 17:52:27 UTC, Ali Çehreli wrote:
> It should be easy to make a template of it. (I really think it
> should already be in Phobos. :) )
Where can I find documentation on this subject?
More information about the Digitalmars-d-learn
mailing list