Summary: const syntax for member functions needs better
           Product: D
           Version: 2.021
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: P2
        AssignedTo: [EMAIL PROTECTED]
        ReportedBy: [EMAIL PROTECTED]

The syntax for declaring const member functions is not very clear.  There is no
grammar.  You need to infer from various examples what to do.  For instance:

class B {}
class A {
  B x;
  const B getB() { return B; }

doesn't compile, because this is a const function returning a nonconst value.  
I had to find the answer on a forum.  It's challenging to figure this out from
the docs:

class B {}
class A {
  B x;
  const const(B) getB() { return B; }

Examples covering more use cases would probably help, as well as more formally
describing how const is specified.  Perhaps modifying the example of an
invariant member function to return a value (other than string) would help.


Reply via email to