专职C++

不能停止的脚步

  C++博客 :: 首页 :: 联系 :: 聚合  :: 管理
  163 Posts :: 7 Stories :: 135 Comments :: 0 Trackbacks

常用链接

留言簿(28)

我参与的团队

搜索

  •  

最新评论

阅读排行榜

评论排行榜

置顶随笔 #

     摘要: 今年7月以来,终于完全投入到cocos2dx手机项目开发了。真是不容易啊。在这之前,做了很多尝试cocos的各种版本。cocos2dx 2.2.2,quick cocos2dx 2.2.4,cocos2dx 2.2.5,cocos2dx.3.0,cocos2dx 3.1,最终,决定还是使用2.2.2这个版本,我的大多数例子也是基于这个版本的,其它的或多或少总有些问题。特别是这次cocos2dx 2.2.5发布,问题也比较大,作者有些随意了。随机项目中进展,我会把项目遇到的问题,会以笔记的方式列出来,为什么:为我以为再次遇到问题可以快速度解决。  阅读全文
posted @ 2014-07-15 23:37 冬瓜 阅读(2520) | 评论 (2)编辑 收藏

     摘要: 由于开发游戏服务器,常常会用到各种时间判断。这里就在原有的标准C时间函数上做了一些扩展,使他可以方便的用在游戏中。希望能对你有用:)
如果涉及到时候,请在程序启动的时候,先运行tzset()。这个函数会设置时间函数的全局变量timezone。下面有些函数用到了,请注意!
注意:C++Builder使用mktime,有bug!使用C++Builder的同志们要注意!
(更新说明,函数有所调整,更新随笔)
  阅读全文
posted @ 2013-06-27 12:09 冬瓜 阅读(2560) | 评论 (1)编辑 收藏

2020年2月24日 #

根据 Reddit C++ 版块上的信息,C++ 20 已经正式通过委员会草案,这意味着 C++ 20 可以准备发布。

“在近期 ISO C++ 委员会会议上,我们完成了 C++ 20 委员会草案,并投票决定将国际标准草案(DIS,Draft International Standard)发送出去,以进行最终批准和发布”,帖子介绍:“在程序上,DIS 可能会被拒绝,但是由于我们的程序和过程,这种情况极不可能发生。这意味着 C++ 20 已经完成,并将在几个月后发布该标准。”

C++ 20 是近十年来影响最大的一个版本,新的特性众多,包括:

  • 模组(Modules)
  • 协程(Coroutines)
  • 标准库 Concepts 的概念
  • 范围(range)
  • constexpr支持:newdeletedynamic_casttrycatch、虚拟
  • constexpr 向量和字符串
  • 计时:日历、时区支持
  • std::format
  • std::span
  • std::jthread

预计这些新特性将会对开发者及 C++ 生态产生不小影响,特别是像协程这种巨大的变化。

同时,在此次会议期间,委员会还通过了 C++ 23 计划,其中包括优先考虑模块化标准库、对协程、执行程序和网络的库支持。

更加具体的内容可以查看原帖:

https://www.reddit.com/r/cpp/comments/f47x4o/202002_prague_iso_c_committee_trip_report_c20_is

posted @ 2020-02-24 13:26 冬瓜 阅读(282) | 评论 (0)编辑 收藏

2020年1月11日 #

原文地址:https://www.oschina.net/news/112476/cpp-in-2019

C++ 软件工程师 Bartek 发布博客,回顾了 C++ 2019 年的发展情况。

Bartek 主要介绍了 2019 年 C++ 特性上的演进、在全球的会议重大进展、相关工具的改进,以及 C++20 新特性的期待,他总结成三大关注点:

  • C++20 即将发布
  • 工具,现在编写 C++ 代码更加容易
  • C++ 在开发者中的稳定地位

(需要注意的是,文章提出的只是 Bartek 的观点,并不代表整个 ISO C++ 委员会的观点。)

从下表可以看出来,在 2019 年,C++ 社区做了许多事情,像我们关注的新特性方面的进展也有不少,比如 Clang 8.0.09.0.0 发布、VS 2019 发布与 GCC 9.1 发布等。

简单总结起来,从 Clang 5.0、GCC 8.0、Visual Studio 15.7 和 Intel C++ Compiler 19.0.1 开始,所有编译器都支持 C++ 语言特性。虽然 C++ 标准库需要其它支持,特别是并行算法和文件系统之类的要点。std::filesystem需要使用到 GCC 8.1(或更高版本的 GCC 9.1)、Clang 3.9(或更高版本 7.0)和 Visual Studio 2017 15.7。并行算法更新最早在 Visual Studio 2017 15.7 中可用,但随着之后的更新,MSVC 团队添加了更多算法。

关于 C++20 的讨论在今年占据主导地位,目前特性已经冻结,主要特性包括:

  • 模组
  • 协程
  • 标准库 Concepts 的概念
  • 范围
  • constexpr支持:newdeletedynamic_casttrycatch,虚拟
  • constexpr 向量和字符串
  • 计时:日历、时区支持
  • std::format
  • std::span
  • std::jthread

目前流行的编译器已经实现了许多 C++20 特性。Bartek 列了一个 C++20 新特性的小表:

工具方面,首先 Visual Studio 对 C++ 提供了众多新的支持,包括:

  • 使用 Visual Studio IntelliCode 的 AI 辅助代码补全
  • C++ MSBuild 和 CMake 项目中对 Clang 和 MSVC 的 Clang-Tidy 的支持
  • AddressSanitizer 支持 Windows 上使用 MSVC 编译的项目
  • 与 CMake 更好地集成
  • Concepts 在 16.3 中可用
  • 全面的to_chars()支持,满足了 C++ 17 的要求
  • 提供了一个名为 C++ Build Insights 的新工具集合。

Clang/LLVM 提供了许多强大的实用程序,比如:

代码分析器 CppDepend v2019.3 增加了对 MISRA 编码准则的支持,VS 2019 支持、QT 项目、简化的 UI、嵌入式项目支持。

PVS-Studio,这是一个使用 C/C++ 和 C# 编写的程序源代码中的错误检测工具,2019 年的一些显着变化包括 .NET Core 3 和 3.1 项目分析、MISRA 准则支持、40 多项新检查、对 Java、SonarQube 插件的支持。

包管理器 Conan 与 Microsoft/vcpkg 也都有一些新变化。

最后 Bartek 介绍了 2019 年 C++ 在开发者人群中的地位依然稳定:

  • TIOBE 编程语言排行榜中 C++ 排到了第 4 位。
  • 在 StackOverflow 调查中,C++ 位于 C 上方的第 9 位。
  • 在 GitHub 的调查中,C++ 排名第 6。

除了这些榜单,Bartek 自己也做了一个简单的调查问卷,结果显示了关于 C++ 的使用情况,包括使用的标准库版本、工具的选择与对 C++20 新特性的使用等:

完整回顾内容查看原博客:

https://www.bfilipek.com/2019/12/cpp-status-2019.html

posted @ 2020-01-11 10:50 冬瓜 阅读(203) | 评论 (0)编辑 收藏

smartgit是一个非常好的带完整git flow的git客户端。支持windows, linux,mac。

首先到官网下载smartgit包, Debian Bundle的安装版本。在deepin双击默认安装就可以了。

然后在deepin启动器,最下面,可以找到smartgit,启动它

然后选择试用30天,我们就可以使用了,我这里使用的版本是9.1.4版本。

https://gitee.com/pedoc/crackSmartGit下载发布破解,放到 ~/.config/smartgit目录下面

然后编辑~/.config/smartgit/smartgit.vmoptions

我这里配置 的是:-javaagent:/home/zdhsoft-linux/.config/smartgit/crackSmartGit.jar=19.1.4

然后,运行smartgit,在菜单->帮助->注册产品 选择这个目录下的licenes.txt文件, 完成注册。

https://gitee.com/pedoc/crackSmartGit有licenes下载

最后,在条件富于的情况下,请用正版的smartgit!

posted @ 2020-01-11 10:45 冬瓜 阅读(3015) | 评论 (0)编辑 收藏

2019年4月9日 #

有了Modules和协程后,go可以一边凉凉。
原文:https://www.oschina.net/news/104653/201902-kona-iso-c-committee-trip-report-c20?p=3
刚刚结束的 C++ 标准委员会2019春季会议在夏威夷科纳举办,委员会在这次会议中确定了下一个国际标准 C++20 的全部特性,这标志着 C++20 的特性设计工作已完成

按照 C++20 的发布计划,这次会议正是为了冻结 C++20 的特性而举办,进入特性冻结阶段(Feature freeze)意味着所有的功能特性将被冻结,并且不会再加入更多的新特性。

接下来我们看看上周会议确定添加至 C++20 草案的新特性:

协程的加入应该是最大的惊喜了,值得期待!官方还表示,C++20 应该会是一个像 C++11 那样的大版本。

以下的特性已在本次会议或之前的会议上通过了批准,但尚未添加到 C++20 中,因为目前规范仍在编写中。它们有望在2019年7月的科隆会议上被加入,不过由于时间限制,可能无法完成所有工作。

下面的这些特性,早已在之前的会议上通过了批准:

按照计划的发布进度,C++20 预计将于明年夏季推出。


C++20 发布计划

最后,看看 C++ 主要特性的开发进度。

自上次会议以来的变更:

特性状态依赖Current Target (Conservative Estimate)Current Target (Optimistic Estimate)
ConceptsConcepts TS v1 published and merged into C++20 C++20C++20
RangesRanges TS v1 published and merged into C++20ConceptsC++20C++20
ContractsMerged into C++20 C++20C++20
ModulesMerged design approved for C++20 C++20C++20
CoroutinesCoroutines TS v1 published and merged into C++20 C++20C++20
ExecutorsProposed v1 design approved for C++23 C++26C++23
NetworkingNetworking TS v1 publishedExecutorsC++26C++23
ReflectionReflection TS v1 published C++26C++23

名词解释

  • IS = 国际标准。如 C++ 编程语言:C++11, C++14, C++17 等
  • TS = 技术规范。在该阶段中,特性分支处于可使用状态,但尚未被所有厂商实现。如 Coroutines TS v1, Modules TS v1 等。

  • CD = 委员会草案,即 IS/TS 的草案,用于给标准机构进行审查和反馈("beta testing")。

据透露,工具研究小组 SG15 决定创建一个 C++ 生态系统技术报告,该报告将描述新模块化 C++ 中工具(构建系统等)的最佳实践和最新技术。

posted @ 2019-04-09 13:25 冬瓜 阅读(433) | 评论 (0)编辑 收藏

2018年2月6日 #

想当年,我360云盘,还有几个T的电影下载不下来,说好了,给时间让我们备份,结果速度只有100k,还没事老断,不能接着下载
想当年,360搞手机,把酷派的大神收过去,说好的,给我们升级OS,然后就没有下文了
想当年,我编译一个程序,它报一个大大红叉,然后把我编译的程序删除了
想当年,3721这个是周神棍写的
想当年,3721被卖掉后,灭3721的也是它
想当年,3721是软件安装困绑的鼻祖
来三枝香,给360上上
posted @ 2018-02-06 16:25 冬瓜 阅读(1094) | 评论 (0)编辑 收藏

2018年2月3日 #

后面会慢慢加东西,哈

https://github.com/zdhsoft

posted @ 2018-02-03 18:25 冬瓜 阅读(16651) | 评论 (0)编辑 收藏

2017年12月23日 #

typescript的开发工具

  1. 现在typescript应用越来越多了,它最大的优势,就是可读性强。增加了很多语法检查,减少了代码误错率。
  2. 目前,我接解触的typescript工具主要有vscode, visual stduio 2017webstorm

vscode

它的优点非常突出。首先是免费开源。每月都会有更新,功能越来越强大。用它来开发typescript工程,完全够用。像layabox和erget这两个游戏引擎的ide,就是基于vscode定制的。而且,它本身就是基于node开发,所以算是node的自扩展工具。它是typescript首选工具

visual studio 2017

在我心中,visual studio是宇宙无敌第一工具,能开发很多应用,手机跨平台应用不在话下,还有云应用。但是它太大了,离线英文安装包达30G,如果全部安装的话,我的120G的SSD小硬盘,完全不够用。试着用它开发typescript或js,比vscode强大不少。但是,它太大了,跑不起…

webstorm

这是一个基于instllij的开发工具,功能也很全面,对于typescript还有专门的支持。它是收费的,不便宜。体积也比vscode大很多。显示效果,没有vscode高大尚。

最后,各方考虑,还是推荐vscode

正题

创建node工程

  1. //比如在d:\tmp创建一个目录 ts1
  2. mkdir d:\tmp\ts1
  3. cd d:\tmp\ts1
  4. npm init //按提示完成后,这完成node工程创建

增加typescript支持

  1. //如果没有安装typescript,则用命令 npm install typescript -g 安装
  2. tsc -v //可以看到当前的版本
  3. //在d:\tmp\ts1目录下面,输入
  4. tsc --init
  5. //完成后,就会生成一个tsconfig.json的文件
  6. //最后
  7. code . //用vscode打开当前目录
  8. //在vscode,新建一个index.ts,
  9. //增加下面一行
  10. console.log('hello typescripit');
  11. //在命令行下,输入tsc后,就会得到一个index.js,
  12. //然后输入下面命令
  13. node .
  14. //就可以运行了
  15. //或者在vscode下,按下ctrl_+ shift + b,会弹出任务菜单项,选择Tsc编译,
  16. //然后再配置vscode运行,就可以按F5调试并运行了。

一些问题解决

增加代码提示

好像从vscode 1.8后,就不使用了typing了,改使用@types了。在编写typescript的时候,如果要用到node自带的fs,或http等模块,用import后会有错误提示,那是因为没有安装@types

  1. //在命令提示符下:
  2. npm install @types/node@6.x //我这里用的是node 6.x
  3. //完成后,就可以愉快的使用node的模块的代码提示了

划分目录

默认的情况下,ts和js都是在一起的,生成发布版本的时候,就会有些乱了。所以,将所有生成的代码,放到别的目录。 
打开tsconfig.js 
找到compilerOptions中的outDir,增加./build,这样就会将代码生成到build里面了,然后修改package.json,修改main为build/index.js就可以运行了。 
默认的情况下, 
“allowJs”: true, /* Allow javascript files to be compiled. */ 
表示会把代码js文件,一起编译到build下 
这样代码,就会好多了:)

去除同名js

在没有划分目录的情况下,基于ts生成的js和ts是在同一个目录的,结果在vscode文件列表都会显示,这个vscode设置一下就可以了。 
Vscode->File->首选项->设置 
增产加 “*/.js”: { “when”: “$(basename).ts” },就可以了,下面是具体配置的例子

  1. "files.exclude": {
  2. "**/.git": true,
  3. "**/.svn": true,
  4. "**/.hg": true,
  5. "**/CVS": true,
  6. "**/node_modules":true,
  7. "**/typings":true,
  8. "**/logs":true,
  9. "**/*.js": { "when": "$(basename).ts" },
  10. "**/**.js": { "when": "$(basename).tsx" },
  11. "**/.DS_Store": true
  12. },
posted @ 2017-12-23 12:15 冬瓜 阅读(1403) | 评论 (0)编辑 收藏

2017年11月15日 #

有时候会上传一些资源共享,以便他人之需,以前都是1c币的。有些是0c币的,但是最近好像有变化了。

首先,是没有0的选择了,最少2c币起步。

第二,随着被下载的次数增加,需要的c币从几何基数增长

每个c币要1RMB的样子,如我下面的git文件,被下载两次后,就从2c币变成12c币,合计12RMB。

http://download.csdn.net/download/zdhsoft/10042921


csdn这是要干什么呢?抢钱?

posted @ 2017-11-15 14:15 冬瓜 阅读(1394) | 评论 (0)编辑 收藏

2017年8月29日 #

1.Yum包的官方地址:

https://dev.mysql.com/downloads/repo/yum/


选择对应系统的rpm包下载 下载的时候要登录的时候,请注册一个。

 然后,把对应的rpm包下载下来

 

2:然后把rpm包,传到Linux系统,centos 6,7是有区分的,请对系统做相应的操作。

Centos7 :mysql57-community-release-el7-11.noarch.rpm

Centos6:mysql57-community-release-el6-11.noarch.rpm

 

3:解压安装rpm

输入su,进入root模式

输入:rpm -Uvh mysql57-community-release-el7-11.noarch.rpm安装对应的yum

输入:yum repolist all | grep MySQL

 

 

4.安装

安装mysql:yum install mysql-community-server

5.启动

启动mysql:service mysqld start

6.设置密码

注意一下:数据库初始化,必须要重置密码才能使用,也就是使用alter user命令将root密码重置。

 

输入:grep'temporarypassword' /var/log/mysqld.log查看密码

然后输入:mysql-uroot -p连接本地的mysql,提示输入的密码,就是那个上面grep命令显示的

 

进入mysql后,用下面的命令修改密码:

mysql>ALTER USER'root'@'localhost'IDENTIFIED BY'MyNewPass4!';

 

 

 

安装完成后,安装的数据在:/var/lib/mysql

 

1、关闭firewall:

systemctl stop firewalld.service #停止firewall

systemctl disable firewalld.service #禁止firewall开机启动

firewall-cmd--state #查看默认防火墙状态(关闭后显示notrunning,开启后显示running)

 

 

//配置连接方式和权限,注意,要执行flush privileges;否则会连接不了

grantall on *.* to rock@'%' identified by 'NewPassword1' with grant option;

flush privileges;

posted @ 2017-08-29 15:11 冬瓜 阅读(859) | 评论 (0)编辑 收藏

2017年8月25日 #

     摘要: 跟据vscode官网pdf,再编辑Visual Studio Code Keyboard shortcuts for windowsGeneral快捷键说明Ctrl+Shift+P, F1Show Command PaletteCtrl+PQuick OpenCtrl+Shift+NNew window/instanceCtrl+Shift+WClose window/instanceBasic ...  阅读全文
posted @ 2017-08-25 10:31 冬瓜 阅读(1958) | 评论 (0)编辑 收藏