Supported Features[edit]
Properties[edit]
Classdef properties are supported but not all attributes are implemented.
Attribute
|
Support
|
Notes
|
AbortSet
|
No
|
Property does not exist.
|
Abstract
|
Yes
|
|
Access
|
Partial
|
|
Constant
|
Yes
|
|
Dependent
|
Partial
|
|
GetAccess
|
Partial
|
|
GetObservable
|
No
|
Property exists but is not used. Requires events and listeners to be implemented in order to work properly.
|
Hidden
|
Yes
|
|
NonCopyable
|
No
|
Property does not exist.
|
SetAccess
|
Partial
|
|
SetObservable
|
No
|
Property exists but is not used. Requires events and listeners to be implemented in order to work properly.
|
Transient
|
No
|
Property exists but is not used.
|
Methods[edit]
Classdef methods are supported but not all attributes are fully implemented.
Attribute
|
Support
|
Notes
|
Abstract
|
Partial
|
See bug report #51377
|
Access
|
Yes
|
|
Hidden
|
Yes
|
|
Sealed
|
Yes
|
|
Static
|
Yes
|
|
Features that are not implemented[edit]
- #44582 Parse the enumeration section of a classdef definition but nothing is done with it.
- #56194 Parse the events section of a classdef definition but nothing is done with it.
Open Bug Reports for Other Issues[edit]
Issues with basic classdef functionality[edit]
- #51659 Calling 'methods' on self causes syntax error
- #52096 meta.class.fromName throws error when class name not found.
- #55983 'x(ix) = []' deletion syntax does not work for objects
- #55976 cat, repmat, and reshape don't work for classdef objects
- #55961 properties function does not preserve order - Patch submitted, awaiting review
- #52582 using static method to initialize property value fails
- #45833 support load/save of classdef objects
- #61676 Assigning classdef objects to other types does not call converter methods
Classdef and +package directories[edit]
- 54941 interpreter cannot find methods in files of classdefs in packages
Arrays of classdef objects[edit]
- #44665 error in concatenation of classdef objects
- #53906 Cannot make an object array with square brackets
- #47755 Access to object arrays
- #47241 classdef: assigning property of handle object in object array constructs new object
Debugger (fixes for these are in progress)[edit]
- #46451
unable to set breakpoints within classdef classes - Patch closed
- #45404
Breakpoints cannot be set in classdef methods or +package function files - Report closed
- #65610 unable to set breakpoints within set or get functions of classdef classes - Patch applied, ready for test
Lower-priority issues[edit]
- #55488 Invalid use of colon char as classdef function's argument when subsref is overwritten
- #54966 Error when assigning array to an object implementing subsasgn() subscripted using "{}"
- #54028 copy of non-handle class instance is not deep
- #53811 cellfun does not find overloaded function with function name argument
- #52989 classdef: missing error messages on multiply defined properties
- #52582 Dependent constant properties in classdef errors: no such file
- #52123 Indirect memory leak in cdef_manager::initialize ()
- #51285 max_recursion_depth error in classdef constructor
- #50395 subclassing a class that is also defined as a variable fails
- #50011 failure to report error on conflicting methods for classdef
- #49379 classdef constructor: .argn. loses first argument, inputname(n) returns inputname(n+1)
- #55810 sizeof() and whos() returns 0 bytes for classdef objects
- #45893 classdef properties are not reloaded when file is updated
- #44643 classdef handle object can go into an recursive loop with isequal(obj1,obj2) if both are self-referential
- #55755 mxGetProperty does not work with properties marked as Dependent
- #55767 classdef property should not be the same as classdef name (at least for Matlab compatibility)
- #44035 unable to subclass built-in types
- #62432 classdef object display of boolean matrix property fails with error message
Documentation[edit]
- #50729 Improve OOP documentation
- #47908 Octave:classdef-to-struct not documented in warning_ids.m
- #44590 More documentation for the current status of classdef implementation
Classdef examples in Octave[edit]