Classdef: Difference between revisions

Jump to navigation Jump to search
332 bytes removed ,  18 January 2020
→‎Features that are not implemented: Property Validation Functions and links
No edit summary
(→‎Features that are not implemented: Property Validation Functions and links)
(5 intermediate revisions by 2 users not shown)
Line 93: Line 93:
=== Features that are not implemented ===
=== Features that are not implemented ===


==== enumeration ====
==== [https://www.mathworks.com/help/matlab/enumeration-classes.html 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}}.
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 ====
==== [https://www.mathworks.com/help/matlab/matlab_oop/learning-to-use-events-and-listeners.html 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}}.
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 ====
==== [https://www.mathworks.com/help/matlab/matlab_oop/property-validator-functions.html Property Validation Functions] ====


Octave does not allow subclassing built-in classes.  In Matlab, classdef objects may subclass built-in integer, floating point, and logical types.  For example,
=== Open Bug Reports for Other Issues ===
<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 ===


==== Issues with basic classdef functionality ====
==== Issues with basic classdef functionality ====
Line 163: Line 124:
* [https://savannah.gnu.org/bugs/?55746 55746] interpreter fails to instantiate classdef with classdef properties
* [https://savannah.gnu.org/bugs/?55746 55746] interpreter fails to instantiate classdef with classdef properties
* [https://savannah.gnu.org/bugs/?52582 52582] using static method to initialize property value fails
* [https://savannah.gnu.org/bugs/?52582 52582] using static method to initialize property value fails
* [https://savannah.gnu.org/bugs/?45833 45833] support load/save of classdef objects


==== Classdef and +package directories ====
==== Classdef and +package directories ====
Line 170: Line 132:
==== Arrays of classdef objects ====
==== Arrays of classdef objects ====


* [https://savannah.gnu.org/bugs/?44665 44665] error in concatenation of classdef objects
* [https://savannah.gnu.org/bugs/?53906 53906] Cannot make an object array with square brackets
* [https://savannah.gnu.org/bugs/?47755 47755] Access to object arrays
* [https://savannah.gnu.org/bugs/?47755 47755] Access to object arrays
* [https://savannah.gnu.org/bugs/?47241 47241] classdef: assigning property of handle object in object array constructs new object
* [https://savannah.gnu.org/bugs/?47241 47241] classdef: assigning property of handle object in object array constructs new object
Line 185: Line 149:
* [https://savannah.gnu.org/bugs/?53811 53811] cellfun does not find overloaded function with function name argument
* [https://savannah.gnu.org/bugs/?53811 53811] cellfun does not find overloaded function with function name argument
* [https://savannah.gnu.org/bugs/?52989 52989] classdef: missing error messages on multiply defined properties
* [https://savannah.gnu.org/bugs/?52989 52989] classdef: missing error messages on multiply defined properties
* [https://savannah.gnu.org/bugs/?52614 52614] setting properties of classdef object during construction with inheritance
* <strike>[https://savannah.gnu.org/bugs/?52614 52614] setting properties of classdef object during construction with inheritance</strike>
* [https://savannah.gnu.org/bugs/?52582 52582] Dependent constant properties in classdef errors: no such file
* [https://savannah.gnu.org/bugs/?52582 52582] Dependent constant properties in classdef errors: no such file
* [https://savannah.gnu.org/bugs/?52123 52123] Indirect memory leak in cdef_manager::initialize ()
* [https://savannah.gnu.org/bugs/?52123 52123] Indirect memory leak in cdef_manager::initialize ()
Line 197: Line 161:
* [https://savannah.gnu.org/bugs/?55755 55755] mxGetProperty does not work with properties marked as Dependent
* [https://savannah.gnu.org/bugs/?55755 55755] mxGetProperty does not work with properties marked as Dependent
* [https://savannah.gnu.org/bugs/?55767 55767] classdef property should not be the same as classdef name (at least for Matlab compatibility)
* [https://savannah.gnu.org/bugs/?55767 55767] classdef property should not be the same as classdef name (at least for Matlab compatibility)
* [https://savannah.gnu.org/bugs/?44035 44035] unable to subclass built-in types


==== Documentation ====
==== Documentation ====

Navigation menu