Classdef: Difference between revisions

9 bytes added ,  25 April 2019
no edit summary
No edit summary
Line 1: Line 1:
=== Features that are not implemented ===
=== Supported Features ===
 
==== enumeration ====
 
Octave should be able to parse the enumeration section of a classdef definition but nothing is done with it.  Progress on this feature is tracked in bug report {{bug|44582}}.
 
==== events and listeners ====
 
Octave should be able to parse the events section of a classdef definition but nothing is done with it.  Progress on this feature is tracked in bug report {{bug|56194}}.
 
==== built-in class as superclass ====
 
Octave does not allow subclassing built-in classes.  In Matlab, classdef objects may subclass built-in integer, floating point, and logical types.  For example,
<source lang="octave">
classdef nonsense < uint32
  ...
end
</source>
 
does not work.
 
Progress on this feature is tracked in bug report {{bug|44035}}.
 
==== concatenation of classdef objects ====
 
Octave does not support concatenation of classdef objects to create classdef array objects.
 
Example:
 
<source lang="octave">
classdef MyClass < handle
end
 
c = MyClass();
cc = [c, c];  % won't work
</source>
 
For now you can use a cell-array of objects instead:
<source lang="octave">
cc = {c, c};  % ok
</source>
 
Progress on this feature is tracked in bug reports {{bug|44665}} and {{bug|53906}}.
 
==== Saving and loading classdef objects ====
 
Saving and loading classdef objects is not supported.
 
Progress on this feature is tracked in bug report {{bug|45833}}
 
=== Supported ===
 
==== Methods ====
 
Classdef methods are supported but not all attributes are fully implemented.
 
{| class="wikitable"
|-
! style="text-align:left;"| Attribute
! Support
! Notes
|-
|Abstract
|Partial
|See bug report {{bug|51377}}
|-
|Access
|Yes
|
|-
|Hidden
|Yes
|
|-
|Sealed
|Yes
|
|-
|Static
|Yes
|
|}


==== Properties ====
==== Properties ====
Line 141: Line 59:
|Property exists but is not used.
|Property exists but is not used.
|}
|}
==== Methods ====
Classdef methods are supported but not all attributes are fully implemented.
{| class="wikitable"
|-
! style="text-align:left;"| Attribute
! Support
! Notes
|-
|Abstract
|Partial
|See bug report {{bug|51377}}
|-
|Access
|Yes
|
|-
|Hidden
|Yes
|
|-
|Sealed
|Yes
|
|-
|Static
|Yes
|
|}
=== Features that are not implemented ===
==== enumeration ====
Octave should be able to parse the enumeration section of a classdef definition but nothing is done with it.  Progress on this feature is tracked in bug report {{bug|44582}}.
==== events and listeners ====
Octave should be able to parse the events section of a classdef definition but nothing is done with it.  Progress on this feature is tracked in bug report {{bug|56194}}.
==== built-in class as superclass ====
Octave does not allow subclassing built-in classes.  In Matlab, classdef objects may subclass built-in integer, floating point, and logical types.  For example,
<source lang="octave">
classdef nonsense < uint32
  ...
end
</source>
does not work.
Progress on this feature is tracked in bug report {{bug|44035}}.
==== concatenation of classdef objects ====
Octave does not support concatenation of classdef objects to create classdef array objects.
Example:
<source lang="octave">
classdef MyClass < handle
end
c = MyClass();
cc = [c, c];  % won't work
</source>
For now you can use a cell-array of objects instead:
<source lang="octave">
cc = {c, c};  % ok
</source>
Progress on this feature is tracked in bug reports {{bug|44665}} and {{bug|53906}}.
==== Saving and loading classdef objects ====
Saving and loading classdef objects is not supported.
Progress on this feature is tracked in bug report {{bug|45833}}


=== Open Bug Reports for Issues not Described Above ===
=== Open Bug Reports for Issues not Described Above ===