设为首页
收藏本站
切换到窄版
登录
立即注册
找回密码
搜索
搜索
本版
帖子
用户
快捷导航
论坛
BBS
C语言
C++
NET
JAVA
PHP
易语言
数据库
IE盒子
»
论坛
›
IE盒子
›
易语言
›
设计一种新的系统编程语言
1
2
/ 2 页
返回列表
发帖
楼主:
夏末汀芷
设计一种新的系统编程语言
[复制链接]
快乐天天
快乐天天
当前离线
积分
17
1
主题
10
帖子
17
积分
新手上路
新手上路, 积分 17, 距离下一级还需 33 积分
新手上路, 积分 17, 距离下一级还需 33 积分
积分
17
发消息
发表于 2022-9-22 02:46:16
|
显示全部楼层
感觉这样限制会比rust更严格,可能很多东西没法写。如果用这么简单的指针生存期模型就能做到内存安全,那应该早就有人做出来了。
回复
使用道具
举报
你的坚持
你的坚持
当前离线
积分
0
0
主题
2
帖子
0
积分
新手上路
新手上路, 积分 0, 距离下一级还需 50 积分
新手上路, 积分 0, 距离下一级还需 50 积分
积分
0
发消息
发表于 2022-9-22 02:47:13
|
显示全部楼层
像是void foo(A* a, int* b) { a.b = b; } 这样的函数很多情况下其实是安全的。但是目前只能一刀切的禁止了。如果要标记每个变量的生命期,会增加复杂度。例如我想过这样的语法:void foo(A* a, int* b) lifetime(a <= b) { a.b = b;} 表示a的生命期比b短。
回复
使用道具
举报
渐渐老去
渐渐老去
当前离线
积分
10
0
主题
7
帖子
10
积分
新手上路
新手上路, 积分 10, 距离下一级还需 40 积分
新手上路, 积分 10, 距离下一级还需 40 积分
积分
10
发消息
发表于 2022-9-22 02:47:51
|
显示全部楼层
在rust的模型中,生存期还与型变有关,禁止生存期的协变逆变会让大多数场景没法编译,太难了
回复
使用道具
举报
1
2
/ 2 页
返回列表
发帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
快速回复
返回顶部
返回列表