Error while redefining subsref for object, if there are methods with no output arguments

I am trying to redefine brackets operator for my class, as written here: Code Patterns for subsref and subsasgn Methods
So, for all other subscripts except of '()' I should call buil-it function:
varargout = subsref(obj,s)
if ~strcmp(S(1).type, '()')
varargout = {builtin('subsref',obj,S)};
else
... % do something else
end
end
But when I call some methods with dot subscript, which do not return any arguments,
myObject.push_back(3);
My builtin function returns no value for varargout and throws an error: "Too many output arguments."
Next, I have found that I should redefine numArgumentsFromSubscript method. But the problem is, when I call a method that have no return arguments, it does not call numArgumentsFromSubscript.

1 件のコメント

Victor
Victor 2017 年 4 月 10 日
編集済み: Victor 2017 年 4 月 10 日
UPD: Already solved it by adding 'obj' output to every methods, even to subasgn:
function obj = subsasgn(obj,S,inData)
instead of
function subsasgn(obj,S,inData)
and so on.

サインインしてコメントする。

回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeLoops and Conditional Statements についてさらに検索

製品

タグ

質問済み:

2017 年 4 月 10 日

編集済み:

2017 年 4 月 10 日

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by