??xml version="1.0" encoding="utf-8" standalone="yes"?> “在近?ISO C++ 委员会会议上Q我们完成了 C++ 20 委员会草案,q投决定将国际标准草案QDISQDraft International StandardQ发送出去,以进行最l批准和发布”Q帖子介l:“在程序上QDIS 可能会被拒绝Q但是由于我们的E序和过E,q种情况极不可能发生。这意味着 C++ 20 已经完成Qƈ在几个月后发布该标准?#8221; C++ 20 是近十年来媄响最大的一个版本,新的Ҏ(gu)众多,包括Q?/p> 预计q些新特性将会对开发者及 C++ 生态生不媄响,特别是像协程q种巨大的变化?/p> 同时Q在此次会议期间Q委员会q通过?C++ 23 计划Q其中包括优先考虑模块化标准库、对协程、执行程序和|络的库支持?/p> 更加具体的内容可以查看原帖: https://www.reddit.com/r/cpp/comments/f47x4o/202002_prague_iso_c_committee_trip_report_c20_isconstexpr
支持Q?code style="box-sizing: inherit; font-family: Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace; font-size: 13px; margin: 0px 3px; padding: 3px 4px; border: none; border-radius: 4px; background: #f6f6f6;">new/ delete
?code style="box-sizing: inherit; font-family: Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace; font-size: 13px; margin: 0px 3px; padding: 3px 4px; border: none; border-radius: 4px; background: #f6f6f6;">dynamic_cast?code style="box-sizing: inherit; font-family: Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace; font-size: 13px; margin: 0px 3px; padding: 3px 4px; border: none; border-radius: 4px; background: #f6f6f6;">try/ catch
、虚?/li>constexpr
向量和字W串std::format
std::span
std::jthread
]]>
C++ 软g工程?nbsp;Bartek 发布博客Q回了 C++ 2019 q的发展情况?/p>
Bartek 主要介绍?2019 q?C++ Ҏ(gu)上的演q、在全球的会议重大进展、相兛_L(fng)改进Q以?C++20 新特性的期待Q他ȝ成三大关注点Q?/p>
Q需要注意的是,文章提出的只?Bartek 的观点,q不代表整个 ISO C++ 委员会的观点。)
从下表可以看出来Q在 2019 q_C++ C做了许多事情Q像我们x的新Ҏ(gu)方面的q展也有不少Q比?Clang 8.0.0?a style="box-sizing: inherit; background-color: transparent; color: #4183c4; text-decoration-line: none;">9.0.0 发布?a style="box-sizing: inherit; background-color: transparent; color: #4183c4; text-decoration-line: none;">VS 2019 发布?nbsp;GCC 9.1 发布{?/p>
单ȝhQ从 Clang 5.0、GCC 8.0、Visual Studio 15.7 ?Intel C++ Compiler 19.0.1 开始,所有编译器都支?C++ 语言Ҏ(gu)。虽?nbsp;C++ 标准库需要其它支持,特别是ƈ行算法和文gpȝ之类的要炏V?code style="box-sizing: inherit; font-family: Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace; font-size: 13px; margin: 0px 3px; padding: 3px 4px; border: none; border-radius: 4px; background: #f6f6f6;">std::filesystem需要用到 GCC 8.1Q或更高版本?GCC 9.1Q、Clang 3.9Q或更高版本 7.0Q和 Visual Studio 2017 15.7。ƈ行算法更新最早在 Visual Studio 2017 15.7 中可用,但随着之后的更斎ͼMSVC 团队d了更多算法?/p>
关于 C++20 的讨论在今年占据dCQ目前特性已l冻l,主要Ҏ(gu)包括:
constexpr
支持Q?code style="box-sizing: inherit; font-family: Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace; font-size: 13px; margin: 0px 3px; padding: 3px 4px; border: none; border-radius: 4px; background: #f6f6f6;">new/ delete
Q?code style="box-sizing: inherit; font-family: Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace; font-size: 13px; margin: 0px 3px; padding: 3px 4px; border: none; border-radius: 4px; background: #f6f6f6;">dynamic_castQ?code style="box-sizing: inherit; font-family: Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace; font-size: 13px; margin: 0px 3px; padding: 3px 4px; border: none; border-radius: 4px; background: #f6f6f6;">try/ catch
Q虚?/li>constexpr
向量和字W串std::format
std::span
std::jthread
目前行的编译器已经实现了许?C++20 Ҏ(gu)。Bartek 列了一?C++20 新特性的表Q?/p>
工具斚wQ首?Visual Studio ?C++ 提供了众多新的支持,包括Q?/p>
Clang/LLVM 提供了许多强大的实用E序Q比如:
代码分析?CppDepend v2019.3 增加了对 MISRA ~码准则的支持,VS 2019 支持、QT 目、简化的 UI、嵌入式目支持?/p>
PVS-StudioQ这是一个?C/C++ ?C# ~写的程序源代码中的错误工P2019 q的一些显着变化包括 .NET Core 3 ?3.1 目分析、MISRA 准则支持?0 多项新检查、对 Java、SonarQube 插g的支持?/p>
包管理器 Conan ?nbsp;Microsoft/vcpkg 也都有一些新变化?/p>
最?Bartek 介绍?2019 q?C++ 在开发者h中的地位依然稳定:
除了q些榜单QBartek 自己也做了一个简单的调查问卷Q结果显CZ关于 C++ 的用情况,包括使用的标准库版本、工L(fng)选择与对 C++20 新特性的使用{:
完整回顾内容查看原博客:
https://www.bfilipek.com/2019/12/cpp-status-2019.html
首先到官|下载smartgit? Debian Bundle的安装版本。在deepin双击默认安装可以了?/p>
然后在deepin启动器,最下面Q可以找到smartgit,启动?/p>
然后选择试用30天,我们可以用了Q我q里使用的版本是9.1.4版本?/p>
?a data-cke-saved- >https://gitee.com/pedoc/crackSmartGit下蝲发布破解Q放?~/.config/smartgit目录下面
然后~辑~/.config/smartgit/smartgit.vmoptions
我这里配|?nbsp;的是Q?javaagent:/home/zdhsoft-linux/.config/smartgit/crackSmartGit.jar=19.1.4
然后Q运行smartgitQ在菜单->帮助->注册产品 选择q个目录下的licenes.txt文g, 完成注册?/p>
?a data-cke-saved- >https://gitee.com/pedoc/crackSmartGit有licenes下蝲
最后,在条件富于的情况下,L(fng)正版的smartgit!
按照 C++20 的发布计划,q次会议正是Zȝ C++20 的特性而D办,q入Ҏ(gu)冻l阶D?Feature freeze)意味着所有的功能Ҏ(gu)将被冻l,q且不会再加入更多的新特性?/p>
接下来我们看看上周会议确定添加至 C++20 草案的新Ҏ(gu):
协程的加入应该是最大的惊喜了,值得期待Q官方还表示QC++20 应该会是一个像 C++11 那样的大版本?/p>
以下的特性已在本ơ会议或之前的会议上通过了批准,但尚未添加到 C++20 中,因ؓ目前规范仍在~写中。它们有望在2019q?月的U隆会议上被加入Q不q由于时间限Ӟ可能无法完成所有工作?/p>
Allow constexpr allocation, but disallow allocations that are not deleted at compile time
Implicit creation of objects for low-level object manipulation
下面的这些特性,早已在之前的会议上通过了批准:
A lot more constexpr features: consteval functions, std::is_constant_evaluated, constexpr union, constexpr try and catch, constexpr dynamic_cast and typeid
按照计划的发布进度,C++20 预计于明年夏季推出?/p>
C++20 发布计划
最后,看看 C++ 主要Ҏ(gu)的开发进度?/span>
自上ơ会议以来的变更Q?/p>
Ҏ(gu)?/th> | 状?/th> | 依赖 | Current Target (Conservative Estimate) | Current Target (Optimistic Estimate) |
---|---|---|---|---|
Concepts | Concepts TS v1 published and merged into C++20 | C++20 | C++20 | |
Ranges | Ranges TS v1 published and merged into C++20 | Concepts | C++20 | C++20 |
Contracts | Merged into C++20 | C++20 | C++20 | |
Modules | Merged design approved for C++20 | C++20 | C++20 | |
Coroutines | Coroutines TS v1 published and merged into C++20 | C++20 | C++20 | |
Executors | Proposed v1 design approved for C++23 | C++26 | C++23 | |
Networking | Networking TS v1 published | Executors | C++26 | C++23 |
Reflection | Reflection TS v1 published | C++26 | C++23 |
名词解释
- IS = 国际标准。如 C++ ~程语言QC++11, C++14, C++17 {?/li>
TS = 技术规范。在该阶D中Q特性分支处于可使用状态,但尚未被所有厂商实现。如 Coroutines TS v1, Modules TS v1 {?/p>
CD = 委员会草案,?IS/TS 的草案,用于l标准机构进行审查和反馈("beta testing")?/p>
据透露Q工L(fng)I小l?SG15 军_创徏一?C++ 生态系l技术报告,该报告将描述新模块化 C++ 中工P构徏pȝ{)的最?jng)_践和最新技术?/p>
https://github.com/zdhsoft
现在typescript应用来多了,它最大的优势Q就是可L强。增加了很多语法查,减少了代码误错率?/span>
目前Q我接解触的typescript工具主要?/span>vscode, visual stduio 2017?/span>webstorm
它的优点非常H出。首先是免费开源。每月都会有更新Q功能越来越强大。用它来开发typescript工程Q完全够用。像layabox和ergetq两个游戏引擎的ide,是Zvscode定制的。而且Q它本n是Znode开发,所以算是node的自扩展工具。它是typescript首选工?/p>
在我心中Qvisual studio是宇宙无敌第一工具Q能开发很多应用,手机跨^台应用不在话下,q有云应用。但是它太大了,ȝ英文安装包达30GQ如果全部安装的话,我的120G的SSD硬盘,完全不够用。试着用它开发typescript或jsQ比vscode强大不少。但是,它太大了Q跑不v…
q是一个基于instllij的开发工P功能也很全面Q对于typescriptq有专门的支持。它是收费的Q不便宜。体U也比vscode大很多。显C效果,没有vscode高大?/p>
//比如在d:\tmp创徏一个目?ts1
mkdir d:\tmp\ts1
cd d:\tmp\ts1
npm init //按提C完成后Q这完成node工程创徏
//如果没有安装typescriptQ则用命?npm install typescript -g 安装
tsc -v //可以看到当前的版?/span>
//在d:\tmp\ts1目录下面Q输?/span>
tsc --init
//完成后,׃生成一个tsconfig.json的文?/span>
//最?/span>
code . //用vscode打开当前目录
//在vscodeQ新Z个index.ts,
//增加下面一?/span>
console.log('hello typescripit');
//在命令行下,输入tsc后,׃得到一个index.jsQ?/span>
//然后输入下面命o
node .
//可以运行了
//或者在vscode下,按下ctrl_+ shift + b,会弹ZQ务菜单项Q选择Tsc~译Q?/span>
//然后再配|vscodeq行Q就可以按F5调试q运行了?/span>
好像从vscode 1.8后,׃使用了typing了,改用@types了。在~写typescript的时候,如果要用到node自带的fsQ或http{模块,用import后会有错误提C,那是因ؓ没有安装@types
//在命令提C符下:
npm install @types/node@6.x //我这里用的是node 6.x
//完成后,可以愉快的使用node的模块的代码提示?/span>
默认的情况下Qts和js都是在一L(fng)Q生成发布版本的时候,׃有些׃。所以,所有生成的代码Q放到别的目录?nbsp;
打开tsconfig.js
扑ֈcompilerOptions中的outDirQ增?/build,q样׃代码生成到build里面了,然后修改package.jsonQ修改main为build/index.js可以运行了?nbsp;
默认的情况下Q?nbsp;
“allowJs”: true, /* Allow javascript files to be compiled. */
表示会把代码js文gQ一L(fng)译到build?nbsp;
q样代码Q就会好多了Q)
在没有划分目录的情况下,Zts生成的js和ts是在同一个目录的Q结果在vscode文g列表都会昄Q这个vscode讄一下就可以了?nbsp;
Vscode->File->首选项->讄
增?“*/.js”: { “when”: “$(basename).ts” },可以了Q下面是具体配置的例?/p>
"files.exclude": {
"**/.git": true,
"**/.svn": true,
"**/.hg": true,
"**/CVS": true,
"**/node_modules":true,
"**/typings":true,
"**/logs":true,
"**/*.js": { "when": "$(basename).ts" },
"**/**.js": { "when": "$(basename).tsx" },
"**/.DS_Store": true
},
首先Q是没有0的选择了,最?c币v步?/p>
W二Q随着被下载的ơ数增加Q需要的c币从几何基数增长
每个c币要1RMB的样子,如我下面的git文gQ被下蝲两次后,׃2c币变?2c币,合计12RMB?/p>
http://download.csdn.net/download/zdhsoft/10042921
csdnq是要干什么呢Q抢钱?
https://dev.mysql.com/downloads/repo/yum/
选择对应pȝ?/span>rpm包下?/span> 下蝲的时候要d的时候,h册一个?/span>
然后Q把对应的rpm包下载下?/p>
2:然后把rpm包,传到LinuxpȝQcentos 6,7是有区分的,请对pȝ做相应的操作?/span>
Centos7 :mysql57-community-release-el7-11.noarch.rpm
Centos6:mysql57-community-release-el6-11.noarch.rpm
3:解压安装rpm
输入suQ进?/span>root模式
输入Q?/span>rpm -Uvh mysql57-community-release-el7-11.noarch.rpm安装对应?/span>yum?/span>
输入Q?/span>yum repolist all | grep MySQL
4.安装
安装mysqlQyum install mysql-community-server
5.启动
启动mysqlQservice mysqld start
6.讄密码
注意一下:数据?/a>初始化,必须要重|密码才能用,也就是?/span>alter user命o?/span>root密码重置?/span>
输入Qgrep'temporarypassword' /var/log/mysqld.log查看密码
然后输入Q?/span>mysql-uroot -pq接本地?/span>mysqlQ提C入的密码Q就是那个上?/span>grep命o昄?/span>
q入mysql后,用下面的命o修改密码Q?/span>
mysql>ALTER USER'root'@'localhost'IDENTIFIED BY'MyNewPass4!';
安装完成后,安装的数据在:/var/lib/mysql
1、关闭firewallQ?/p>
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #止firewall开机启?/p>
firewall-cmd--state #查看默认防火墙状态(关闭后显CnotrunningQ开启后昄runningQ?/p>
//配置q接方式和权限,注意Q要执行flush privileges;否则会连接不?/span>
grantall on *.* to rock@'%' identified by 'NewPassword1' with grant option;
flush privileges;