c++20可能是用c++写web api最好的一个初始版本
elite战队吧
全部回复
仅看楼主
level 8
344233108 楼主
有几点是需要关注的
范围库
--提供了类似C#的linq,linq能像sql那样在代码中编写查询语句,这些查询语句是可以转化成sql查询语句来执行的(Entity Framework),而linq最基础的调用函数的形式跟范围库的是类似的,以wiki上的实例代码为例子,其中for (int i : ints | std::view::filter(even) | std::view::transform(square))这部分用linq来写相当于select i in ints where even(i) select square(i),看上去是差不多的,所以c++是可以通过范围库去执行数据库查询的
char8_t
--众所周知,现在大多数网站都是用utf8来传输的,而在char8_t出来之前,c++本身也可以做到utf8字符串的读写,但是在一些情况下必须要用一些不合理的做法才能正确读写utf8,比如众所周知的中文占两个字符这个说法,本身就是错误的(但是已经推广开来了),又比如codecvt完全不知道你丢给他的char是gbk(以windows中文系统)还是utf8,再加上codecvt_utf8_utf16的退出,其实整个c++17版本对于utf8的支持是极其匮乏的,以致在我在写不同类型字符串转换的时候,必须给use_facet加上一个locale参数才称得上可以在char16_t和char之间进行utf8转换,于是在微软的开源库cpprestsdk里(以上一次的使用情况下)用的还是wstring(宏定义)估计也是有这方面的考虑,char8_t一出,应该就能顺势走向网络传输utf8的道路了
协程
--其实一开始我不知道协程是什么玩意,后来知道了觉得这个概念适用情况很少,再深入一点,我觉得是可以用来网络传输的(除了进度条的功能之外),当然我不清楚具体要怎么用(因为wiki上没有示例,论文上也没有示例,都是实现看不懂),所以这方面就不说了
2019年04月14日 04点04分 1
level 8
344233108 楼主
忽然想起来这个范围库写法有个缺点,不能把lambda写在for循环里,不然画美不看[阴险]
2019年04月15日 12点04分 2
level 8
344233108 楼主
a
2019年06月16日 07点06分 4
level 1
C++ 标准库对字符串的处理功能还是太少了。 (我只用过C++11 之前的版本)
2019年08月05日 02点08分 5
泛型字符串是这样的了,处理功能几乎都需要char_traits来提供,然后char_traits又不能设计地太臃肿,Unicode那些事可能还需要自己写一个特化,但是市面上那些提供不区分大小写比较的库其实在某种程度上并不是特别好,反而char_traits这样会比较好一点(比如规定一和壹是大小写的话)
2019年08月05日 13点08分
市面上那些库通常都不能这样做,char_traits可以,但是要规定存储的字符可以容纳一和壹(比如char16_t),可以说是成也char_traits,败也char_traits
2019年08月05日 13点08分
1