写 GUI 经常碰到需要使用 callback 来描述 event 发生时的 behavior ,在 callback 函数里面不可避免的要使用到某些变量,之前不用 lambda 需要把 callback 内引用的变量都作为全局变量,现在用了 lambda 之后可以直接变量捕捉,在 class method 内也能捕获 this 指针,用起来太爽了
1
kera0a 2024-11-20 15:39:46 +08:00 via iPhone 写 c++ 的这么惨吗?
|
2
AllenTsui 2024-11-20 16:00:38 +08:00
写 c++ 的这么惨吗?
|
3
zmxnv123 2024-11-20 16:05:05 +08:00
写 c++ 的这么惨吗?
|
4
orionl 2024-11-20 16:06:37 +08:00
写 c++ 的这么惨吗?
|
5
majiangjun 2024-11-20 16:13:17 +08:00
写 c++ 的这么惨吗?
|
6
Shaar 2024-11-20 16:14:52 +08:00
写 c++ 的这么惨吗?
|
7
chunriyeqiukong 2024-11-20 16:15:35 +08:00
写 c++ 的这么惨吗?
|
8
fgsiveoneone 2024-11-20 16:17:34 +08:00 这不是 C++11 引入的吗?今夕是何年
|
9
zhuyongqi9 OP 纯纯惨了,以前写 js 的时候从来没考虑过这种问题
|
10
zhuyongqi9 OP @fgsiveoneone 是的
|
11
BBCCBB 2024-11-20 16:18:07 +08:00
写 c++ 的这么惨吗?
|
12
ink19 2024-11-20 16:19:42 +08:00
写 c++ 的这么惨吗?
|
13
chingyat 2024-11-20 16:22:15 +08:00
为啥要用全局变量?就算不用 lambda 也应该给个 void *user_data 参数吧。
|
14
zhuyongqi9 OP |
15
ugpu 2024-11-20 16:26:07 +08:00 以前:
callBack() { getInstance().fun_a(); xxxx; dosomething..... } //安全的 low 了点 callBack() { global_ptr->func(); } //天杀的 天塌了 全局指针指向的对象被销毁了. 现在: obj.CallFunc([this]() { .a++; .b--; } 由此可见 写 C++的是真的惨. |
16
ugpu 2024-11-20 16:30:36 +08:00
@zhuyongqi9
尴尬的就是指针指向的对象 协同工作里都是其他模块的 崩的时候就是甩锅. 然后他说你不看文档.最后总结没有文档规范等等一系列问题. 尤其长期维护工程 新员工进来 那叫一个惨. 后来大家都用 全局变量 getInstance()->xxxx. 指针都给弄没了。 你说你要用 智能指针. 还是自己封装的. 结果用起来又内存泄露. CPP 被弃用的问题是 维护成本太高了... 业务码农还要关心技术 结构问题.成本高。 解决方案用指针和全局变量都是为了堵漏. |
17
zhuyongqi9 OP @ugpu hhhhhhhh
|
18
ugpu 2024-11-20 16:33:07 +08:00 还有那种天杀的队友, 一个对象虚继承. A->b->c 析构函数也是虚函数, 他用完 销毁了 C. 别人还在用 B.
万丈高楼轰然倒塌就是这么来的. 要是扯设计 规范 用法 一群程序员有一群想法. 我建议大家用 Java & Golang. CPP 真不适合团队协作. 单机王用 CPP 爽 |
19
originals 2024-11-20 16:36:37 +08:00
用的时候挺爽的,就是优化等级高了后,崩了找不到地方
|
20
snylonue 2024-11-20 16:38:55 +08:00
c++ 的 lambda 感觉挺啰嗦的
|
21
zhuyongqi9 OP @ugpu 兄弟说的都是肺腑之言。自己写程序和合作开发软件完全是两码事,你想遵从规范,别人不一定想,如果一个项目没有一个强有力的人管理代码规范,后果就是五花八门,什么语言都差不多。曾经见过一个 python 项目两个人开发,类似的逻辑,一个人只用 async ,一个人只用 thread ,完全头大
|
22
DOOMS 2024-11-20 16:59:52 +08:00
还有不要直接捕获 this 指针 如果是 c++17 可以使用 std::enable_shared_from_this<T>::weak_from_this
|
23
NessajCN 2024-11-20 17:03:27 +08:00
流下了同情的泪水
|
24
roundgis 2024-11-20 17:04:31 +08:00 via Android
@zhuyongqi9 cpp 就是用来过滤队友的
|
25
cJ8SxGOWRH0LSelC 2024-11-20 17:06:56 +08:00
这段话, 中文夹杂着大量的英文单词, 有点香港电视剧的味道。 却也没有什么违和感。
|
26
momo1999 2024-11-20 17:07:01 +08:00
小心生命期的大坑
|
27
GeruzoniAnsasu 2024-11-20 17:08:02 +08:00
|
28
zhuyongqi9 OP @GeruzoniAnsasu 我没有问问题,这是陈述句
|
29
penisulaS 2024-11-20 17:16:41 +08:00 有的人的 C++写出来像 C ,有的人写出来像 Java ,有的人写出来像 Python ,就大概能看出这些人固定代码习惯是在哪几年了
|
30
skallz 2024-11-20 17:24:32 +08:00
@StinkyTofus 因为专业名词的中文翻译很多都很垃圾,不明所以,当初被定在耻辱柱上的鲁棒性就是如此,还不如英文原文容易看懂
|
32
skallz 2024-11-20 17:48:44 +08:00 @kzfile 很正常,不要说 c++,java ,js ,python 等,很多代码写出来都能一眼看出是哪个生态的味道 233333 ,不同语言社区的主流风格区别蛮大的
|
33
ca2oh4 2024-11-20 17:52:55 +08:00
c++ 11 都 10 多年了。。。
|
34
calvinHxx 2024-11-20 18:36:34 +08:00
天翼 3G 真是太快了。
|
35
chashao 2024-11-20 19:14:21 +08:00
|
36
yuruizhe 2024-11-20 20:16:51 +08:00
@zhuyongqi9 py 这东西,人来写鬼来看,用在协作工程上简直不可维护,再给整个动态属性就更有意思了
|
38
liuliuliuliu PRO 那个啥?要不你试试 C#? 得爽到 GC
|
39
EchoWhale 2024-11-20 21:31:58 +08:00 via iPhone
写 c++ 的这么惨吗?
|
40
xuanbg 2024-11-20 21:56:07 +08:00
C 艹最普遍的问题是执行 delete 无效造成内存泄露,光看代码很难确定泄漏点在哪。
|
42
xjp 2024-11-20 22:11:07 +08:00
python 、js 、java 表示很赞
|
43
bluearc 2024-11-21 00:19:04 +08:00
老项目已经见过很多回调地狱了,新项目可能的话我都尽量推协程
|
44
SHIINASAMA 2024-11-21 02:43:35 +08:00
|
45
yfeng445 2024-11-21 03:36:34 +08:00
@StinkyTofus 因为里边都是专有名词 www
|
46
FreeGuy 2024-11-21 08:55:27 +08:00
C++ 基本都是被逼着走,你看人家 Delphi 在小圈子里面依然发光发热,哪那么多语法糖,爱用不用!
|
47
labubu 2024-11-21 08:58:54 +08:00
都 2024 年了,你才用上 10 年前的标准?
|
48
a764934018 2024-11-21 11:41:51 +08:00
哇,你也网上冲浪啊?
|
49
cnbatch 2024-11-21 14:58:18 +08:00
|
50
nyxsonsleep 2024-11-23 14:19:18 +08:00
@levelworm 系统编程也是用 C
|
51
levelworm 2024-11-23 20:19:46 +08:00 via Android
@nyxsonsleep C++还是不少的,其实 JVM 都好多。。。
|
52
zhuyongqi9 OP @levelworm 我之前一直不知道 jvm 系统编程,想了解一下,能举一个例子吗
|
53
levelworm 2024-11-24 08:05:12 +08:00
@zhuyongqi9 呃,比如 Spark ?
|
54
deetincelle 263 天前
同 js 转 cpp, 先收藏为敬
|