递归火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 火山 源码 类库
查看: 4202|回复: 5
打印 上一主题 下一主题

[视窗] 火山使用C++20范围、协程、概念的简单示例

[复制链接]

6

主题

64

帖子

2599

积分

金牌会员

Rank: 6Rank: 6

积分
2599
跳转到指定楼层
楼主
发表于 2023-3-9 11:19:57 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
将压缩包中覆盖文件夹内的文件分别复制到对应的火山文件夹内
win_android_chs_free\plugins\vprj_win\classlib\sys\base\libs\win_base\include
win_android_chs_free\plugins\vprj_win\classlib\sys\base\libs\win_base\cpp

然后就可以尝试使用 ranges、coroutine、concepts 了,分别对应范围、协程、概念,火山项目中有简单的使用展示。

我认为火山目前的语法已经足够将协程等特性以一个可用的方式封装进火山了,所以写了个简单的项目给想折腾一下的人。
顺便说下我这么认为的理由,12-12更新之前,你不能创建一个在火山中写不出类型的对象,比如C++中没有默认构造函数的类,有了12-12更新提供的@pvpn语法,你可以这样做,假如有一个创建套接字(文本型)的嵌入式方法,创建套接字("socket"), @pvpn<标识符> = server.accept(); 后续如果使用那么同样传递这个"socket",使用处@pvpn,就可以达到不在火山中创建类型而使用的效果,当然,语法噪音目前是不可避免的。
为什么需要这么麻烦?一部分原因是:如果要使用C++标准提供的协程,那么不管是普通函数还是Lambda(匿名函数),必须要写出返回值类型,而不能是auto,其中存在一些问题,但因为时间太久,忘记细节了。
我之所以做这些也是因为我喜欢现代C++的特性,想将之封装到火山中,合理使用可以极大的帮助我们编写代码,可以参考我之前发的帖子排序相关的语法糖,来看看有多甜?


压缩包:
CPP20例子.zip (29.98 KB, 下载次数: 40)

评分

参与人数 1金钱 +15 收起 理由
kyozy + 15 很给力!

查看全部评分

火山PC交流群: 748413192
回复

使用道具 举报

6

主题

57

帖子

604

积分

高级会员

Rank: 4

积分
604
6#
发表于 2023-3-13 16:25:53 | 只看该作者
shuimiao 发表于 2023-3-9 16:59
c++20可以被vs2019编译吗

可以,23是实验性的
回复

使用道具 举报

6

主题

64

帖子

2599

积分

金牌会员

Rank: 6Rank: 6

积分
2599
5#
 楼主| 发表于 2023-3-9 17:11:36 | 只看该作者
shuimiao 发表于 2023-3-9 16:59
c++20可以被vs2019编译吗

可以,你下载例子运行一下就知道了,不方便运行例子的话,还有个回复在审核,审核完了你看那个链接就行了,里面有编译器对特性是否支持的状态。
火山PC交流群: 748413192
回复

使用道具 举报

6

主题

64

帖子

2599

积分

金牌会员

Rank: 6Rank: 6

积分
2599
地板
 楼主| 发表于 2023-3-9 17:06:45 | 只看该作者
shuimiao 发表于 2023-3-9 16:59
c++20可以被vs2019编译吗

可以,VS2022好像全面支持C++20了,部分23也有了,2019应该差不多的,具体可以根据你编译器的版本查看这里:编译器对C++标准的支持情况
火山PC交流群: 748413192
回复

使用道具 举报

411

主题

2518

帖子

8304

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
8304
板凳
发表于 2023-3-9 16:59:40 来自手机 | 只看该作者
c++20可以被vs2019编译吗
回复

使用道具 举报

24

主题

452

帖子

3875

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
3875
QQ
沙发
发表于 2023-3-9 16:09:18 | 只看该作者
顶起
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|递归火山软件开发平台 ( 鄂ICP备18029190号 )

GMT+8, 2024-11-28 06:20 , Processed in 0.093370 second(s), 25 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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