www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - UFCS and "with" statement

reply "Rob T" <alanb ucora.com> writes:
struct S
{
}

void f(S)
{
}

void main()
{
   S s;
   with (s)
   {
      f(); // compiler error
   }
}

Rather disappointing that this fails. Anyone know if this is an 
expected limitation of UFCS or a bug?

--rt
Jun 11 2013
parent reply "bearophile" <bearophileHUGS lycos.com> writes:
Rob T:

 Rather disappointing that this fails. Anyone know if this is an 
 expected limitation of UFCS or a bug?
Probably no one thought on this case. Why do you think it's useful? Bye, bearophile
Jun 12 2013
parent "Rob T" <alanb ucora.com> writes:
On Wednesday, 12 June 2013 at 11:05:22 UTC, bearophile wrote:
 Rob T:

 Rather disappointing that this fails. Anyone know if this is 
 an expected limitation of UFCS or a bug?
Probably no one thought on this case. Why do you think it's useful? Bye, bearophile
If we're to use UFCS as a means to externally extend classes and structs, then UFCS should work as an extension under a with statement, otherwise UFCS is not living up to its full potential. struct S { void a(){ ... } void b(){ ... } void d(){ ... } } void c(S s){ ... } void main() { with (s) { a; b; c; // should be able to infer s.c just as it can infer s.b, etc d; } } --rt
Jun 12 2013