www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 2495] New: const syntax for member functions needs better description

http://d.puremagic.com/issues/show_bug.cgi?id=2495

           Summary: const syntax for member functions needs better
                    description
           Product: D
           Version: 2.021
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: P2
         Component: www.digitalmars.com
        AssignedTo: bugzilla digitalmars.com
        ReportedBy: jlquinn optonline.net


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.


-- 
Dec 06 2008