如何解决重载运算符->
我正在考虑重载ranges::begin/end
运算符。我提出了以下简单示例:
std::
尽管此示例有效,但我希望有人能告诉我它为什么有效。 我以为它应该像这样
->
,但是在这里似乎单个箭头不仅返回了指针,而且还取消了对它的引用。这是C ++中的特例吗?
解决方法
是的,这是设计使然,operator->
将在返回值上递归调用;那么我们可以像使用原始指针一样使用此类(所谓的智能指针)。
如果提供了用户定义的
TypeError: Value passed to parameter 'reduction_indices' has DataType float32 not in list of allowed values: int32,int64
,则以递归方式再次调用operator->
,直到返回的operator->
都返回一个普通指针为止。之后,将内置语义应用于该指针。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。