楼主: 匿名
跳转到指定楼层
上一主题 下一主题
收起左侧

[新组上路] 新入职ramp up,有些C++ code看不懂

 
🔗
SueCin 2022-12-30 14:23:29 来自APP | 只看该作者
全局:
匿名用户 发表于 2022-12-29 22:17:09
C++的lambda可以看作functor (a special kind of class)的语法糖形式吗?
好像无捕获的时候是高速,其它情况是struct

补充内容 (2022-12-30 14:42 +08:00):
函数*
回复

使用道具 举报

🔗
xiaomajia001 2022-12-30 14:26:12 | 只看该作者
全局:
匿名用户 发表于 2022-12-30 14:17
C++的lambda可以看作functor (a special kind of class)的语法糖形式吗?

lambda本质上就是一个匿名的functor
回复

使用道具 举报

地里匿名用户
🔗
匿名用户-6FUO7  | 添加认证 | 2022-12-30 14:39:03
xiaomajia001 发表于 2022-12-29 22:26
lambda本质上就是一个匿名的functor

这点上来看的话C++和Java差不多, function都不是first class citizen于是需要这样的实现方式. ----

另外C++的lambda能做到Python/JS那样的闭包吗
回复

使用道具 举报

🔗
xiaomajia001 2022-12-30 15:36:54 | 只看该作者
全局:
匿名用户 发表于 2022-12-30 14:39
这点上来看的话C++和Java差不多, function都不是first class citizen于是需要这样的实现方式
.--
另外C++ ...

c++的闭包本质上是functor的数据成员(也就是capture list),按引用捕获就可以修改外部的变量
回复

使用道具 举报

🔗
xiaomajia001 2022-12-30 15:44:07 | 只看该作者
全局:
匿名用户 发表于 2022-12-30 14:39
这点上来看的话C++和Java差不多, function都不是first class citizen于是需要这样的实现方式

另外C++ ...
The notion of "first-class citizen" or "first-class element" in a programming language was introduced by British computer scientist Christopher Strachey in the 1960s in the context of first-class functions. The most famous formulation of this principle is probably in Structure and Interpretation of Computer Programs by Gerald Jay Sussman and Harry Abelson:

They may be named by variables.
They may be passed as arguments to procedures.
They may be returned as the results of procedures.
They may be included in data structures.
其实按这个定义,当前版本的c++中function就是first class citizen
回复

使用道具 举报

🔗
dentiny 2022-12-30 17:41:31 | 只看该作者
全局:
xiaomajia001 发表于 2022-12-29 23:44
其实按这个定义,当前版本的c++中function就是first class citizen

emm 这说明class/struct是first- class citizen吧
回复

使用道具 举报

🔗
xiaomajia001 2022-12-30 17:48:28 | 只看该作者
全局:
dentiny 发表于 2022-12-30 17:41
emm 这说明class/struct是first- class citizen吧
.--
这取决于 认不认为functor 也是function,我的看法是满足 “Callable” named requirement就算function
https://zh.cppreference.com/w/cpp/named_req/Callable
回复

使用道具 举报

地里匿名用户
🔗
匿名用户-JZNAC  | 添加认证 | 2022-12-30 18:37:38 来自APP
这种都看不懂,真别学cs了,写过半年代码都能猜到。现在上岸真全是运气
回复

使用道具 举报

地里匿名用户
🔗
匿名用户-NM9ZZ  | 添加认证 | 2022-12-30 19:24:30 来自APP
微信用户_a74b39d 发表于 2022-12-29 13:38:38
憋听那些看书的   ..

找mentor过一遍   这段凭什么要用lambda捏?
找mentor抠这细节?算了 你们别憋做cs了
回复

使用道具 举报

地里匿名用户
🔗
匿名用户-7SKQM  | 添加认证 | 2022-12-30 22:23:36 来自APP
微信用户_a74b39d 发表于 2022-12-29 13:38:38
憋听那些看书的  

找mentor过一遍   这段凭什么要用lambda捏?
你但凡看过书也不至于说出这种话。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
职场达人
  • ↑ 本版用于讨论职场各种干货话题,闲聊请去🔗聊聊或者🔗匿名版
  • ❌ 本版严禁水贴,引战,发布广告,拉群,贴个人联系方式,扣分无警告
  • ☑ 求职、面经等去 🔗北美求职和 🔗回国求职大区,刷题和学习请去 🔗终身学习大区
  • ☑ 请去专版发布 🔗内推, 🔗招聘信息,和讨论 🔗创业内容
  • ☑ PIP / DevList/ Need Support 等话题也已开设 🔗专版

本版积分规则

>
快速回复 返回顶部 返回列表