Here are some comments for the first 2 pages of the proposal.
I will send more comments on the proposal towards the end of the week.
Francoise
'
section 8.3 Syntax.
The syntax defines interface class type to be class_identifier[parameter_value_assignment)
Are we not allowing nested interface class types that would need to be refered as class_identifier[parameter_value_assignment] { :: class_identifier[parameter_value_assignment]}
The syntax also disallows $unit::class_identifier [parameter_value_assignment]
Section 8.25
"A virtual class that is implementing an interface class is not required to fully define the methods, however they must be fully defined by descendent classes. "
Does this mean ALL non virtual derived classes?
This paragraph does not use usual LRM terminology and looks like it has some contradictions.
An interface class may be declared to be an extension of one or more other interface classes, meaning that it implicitly specifies all the member types, pure virtual methods and constants of the interface classes it extends, except for any member types and constants that it may hide.
I think it meant to say:
"An interface class may be declared to extend from one or more interface classes. Such an interface class inherits only the pure virtual methods; the type and constants declarations are not inherited."
Next paragraph says 2 things:
1. polymorphism applies to interface classes
The first sentence refers to section 8.21 but I dot see any changes for section 8.21
Section 8.21 should be updated
I think that the sentence :
A variable whose declared type is an interface class type may have as its value a reference to any instance of a class which implements the specified interface class (see 8.21 Polymorphism).
would be better written as:
A class variable instance of a class type that implements an interface class can be assigned to a variable of that interface class type.
2. a class or its super class must be declared to "implement" an interface class
Perhaps better wording would be:
It is not sufficient that the class (happens to) implement all the pure virtual methods of the interface class; the class or one of its superclasses (must) shall (actually) be declared to implement the interface class through the implements keyword, or else the class is not considered to implement the interface class.
The first following example needs to be enhanced. I'd like to see an actual implementation for the tasks
put and get in the class FIFO, not just a comment.
If the parameter MyPutSignal is not used in the interface class PutImp, let's remove it.
-- This message has been scanned for viruses and dangerous content by MailScanner, and is believed to be clean.Received on Mon May 16 12:16:00 2011
This archive was generated by hypermail 2.1.8 : Mon May 16 2011 - 12:16:12 PDT