sumtype 0.5.0
vit
vit at vit.vit
Thu Aug 9 07:52:12 UTC 2018
On Thursday, 9 August 2018 at 01:04:43 UTC, Paul Backus wrote:
> On Thursday, 9 August 2018 at 00:11:22 UTC, Seb wrote:
>> On Thursday, 9 August 2018 at 00:07:05 UTC, Seb wrote:
>>> (It uses the version from DUB and updates itself once daily,
>>> but somehow dub still lists 0.4.1 at the moment)
>>
>> It looks like you didn't push the git tag to GitHub:
>>
>> https://github.com/pbackus/sumtype/releases
>
> One of these days, I'll learn. Should be there now.
SumType without initialization doesn't fail if first type has
@disabled this().
In SumType need be something like this:
struct SumType(...){
///...
static if(Types.length > 0 && __traits(compiles, (){Types[0]
tmp;}()) == false){
///Types[0] has disabled this()
@disable this();
}
///....
}
method toString is not template. (why is there in the first
place?)
SumType can have zero TypeArgs but then tryMatch fail:
auto st = SumType!();
st.tryMatch!((_) => 1); //fail at compile time with bad error
message.
in matchImpl can by something like this:
static if(Types.length == 0){
static if(exhaustive) {
static assert(0, "No value to match");
} else {
throw new MatchException("No value to match");
}
}
else{
///...
}
or:
struct SumType(TypeArgs...)
if(TypeArgs.length > 0){
}
More information about the Digitalmars-d-announce
mailing list