Helllo, I am reading the following code from Mach7 (which looks great, I wonder why C ++ 17 did not accept it, but this is not the topic ...)
bool operator==(const Term& left, const Term& right)
{
var<std::string> s;
var<const Term&> v,t,f;
Match(left,right)
{
Case(C<Var>(s), C<Var>(+s) ) return true;
Case(C<Abs>(&v,&t), C<Abs>(&+v,&+t)) return true;
Case(C<App>(&f,&t), C<App>(&+f,&+t)) return true;
Otherwise() return false;
}
EndMatch
return false;
}
(see here )
What does “+ s” mean in the second case of the match? Semantically, this should mean: "do something else, for example, by calling the constructor," but I never saw this syntax.
source
share