159
edits
(local functiosn in classdef files) |
(→Issues with basic classdef functionality: re-adding 60729) |
||
(67 intermediate revisions by 11 users not shown) | |||
Line 1: | Line 1: | ||
=== Supported Features === | |||
==== | ==== Properties ==== | ||
Classdef properties are supported but not all attributes are implemented. | |||
{| class="wikitable" | |||
|- | |||
! style="text-align:left;"| 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 ==== | |||
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 === | |||
==== [https://www.mathworks.com/help/matlab/enumeration-classes.html enumeration] ==== | |||
* | * {{bug|44582}} Parse the enumeration section of a classdef definition but nothing is done with it. | ||
==== [https://www.mathworks.com/help/matlab/matlab_oop/learning-to-use-events-and-listeners.html events and listeners] ==== | |||
* {{bug|56194}} Parse the events section of a classdef definition but nothing is done with it. | |||
==== | ==== [https://www.mathworks.com/help/matlab/matlab_oop/property-validator-functions.html Property Validation Functions] ==== | ||
=== Open Bug Reports for Other Issues === | |||
==== | ==== Issues with basic classdef functionality ==== | ||
* | * {{bug|51659}} Calling 'methods' on self causes syntax error | ||
* https:// | * {{bug|52096}} meta.class.fromName throws error when class name not found. | ||
* {{bug|55983}} 'x(ix) = []' deletion syntax does not work for objects | |||
* {{bug|55976}} cat, repmat, and reshape don't work for classdef objects | |||
* {{bug|55961}} properties function does not preserve order - <em>Patch submitted, awaiting review</em> | |||
* {{bug|52582}} using static method to initialize property value fails | |||
* {{bug|45833}} support load/save of classdef objects | |||
* {{bug|61676}} Assigning classdef objects to other types does not call converter methods | |||
* {{bug|60729}} print_usage within classdef constructor breaks subsequent calls to the class | |||
==== Classdef and +package directories ==== | |||
* [https://savannah.gnu.org/bugs/?54941 54941] interpreter cannot find methods in files of classdefs in packages | |||
==== Arrays of classdef objects ==== | |||
* {{bug|44665}} error in concatenation of classdef objects | |||
* {{bug|53906}} Cannot make an object array with square brackets | |||
* {{bug|47755}} Access to object arrays | |||
* {{bug|47241}} classdef: assigning property of handle object in object array constructs new object | |||
==== Debugger (fixes for these are in progress) ==== | |||
* {{bug|46451}} <s>unable to set breakpoints within classdef classes</s> - <em> Patch closed </em> | |||
* {{bug|45404}} <s>Breakpoints cannot be set in classdef methods or +package function files</s> - <em>Report closed</em> | |||
* {{bug|65610}} unable to set breakpoints within set or get functions of classdef classes - <em> Patch applied, ready for test </em> | |||
==== Lower-priority issues ==== | |||
* {{bug|55488}} Invalid use of colon char as classdef function's argument when subsref is overwritten | |||
* {{bug|54966}} Error when assigning array to an object implementing subsasgn() subscripted using "{}" | |||
* {{bug|54028}} copy of non-handle class instance is not deep | |||
* {{bug|53811}} cellfun does not find overloaded function with function name argument | |||
* {{bug|52989}} classdef: missing error messages on multiply defined properties | |||
* {{bug|52582}} Dependent constant properties in classdef errors: no such file | |||
* {{bug|52123}} Indirect memory leak in cdef_manager::initialize () | |||
* {{bug|51285}} max_recursion_depth error in classdef constructor | |||
* {{bug|50395}} subclassing a class that is also defined as a variable fails | |||
* {{bug|50011}} failure to report error on conflicting methods for classdef | |||
* {{bug|49379}} classdef constructor: .argn. loses first argument, inputname(n) returns inputname(n+1) | |||
* {{bug|55810}} sizeof() and whos() returns 0 bytes for classdef objects | |||
* {{bug|45893}} classdef properties are not reloaded when file is updated | |||
* {{bug|44643}} classdef handle object can go into an recursive loop with isequal(obj1,obj2) if both are self-referential | |||
* {{bug|55755}} mxGetProperty does not work with properties marked as Dependent | |||
* {{bug|55767}} classdef property should not be the same as classdef name (at least for Matlab compatibility) | |||
* {{bug|44035}} unable to subclass built-in types | |||
* {{bug|62432}} classdef object display of boolean matrix property fails with error message | |||
==== Documentation ==== | |||
* {{bug|50729}} Improve OOP documentation | |||
* {{bug|47908}} Octave:classdef-to-struct not documented in warning_ids.m | |||
* {{bug|44590}} More documentation for the current status of classdef implementation | |||
=== Classdef examples in Octave === | |||
* [https://hg.savannah.gnu.org/hgweb/octave/file/tip/scripts/miscellaneous/inputParser.m inputParser.m] | |||
* [https://hg.savannah.gnu.org/hgweb/octave/file/tip/scripts/web/weboptions.m weboptions.m] | |||
* [https://hg.savannah.gnu.org/hgweb/octave/file/tip/scripts/%2Bcontainers/Map.m +containers/Map.m] | |||
[[Category:Development]] |
edits