所有由qicosmos发布的文章

ormpp–一个很酷的Modern C++ ORM库

ormpp是modern c++(c++11/14/17)开发的ORM库,为数据库操作提供了统一、灵活和易用的接口,目前支持了三种数据库:mysql, postgresql和sqlite。ormpp主要有以下几个特点:

  1. header only
  2. cross platform
  3. unified interface
  4. easy to use
  5. easy to change database

你很容易就可以实现数据库的各种操作了,大部情况下甚至都不需要写sql语句了。ormpp是基于编译期反射的,会帮你实现自动化的实体映射,你再也不用写对象到数据表相互赋值的繁琐易出错的代码了,更酷的是你可以很方便地切换数据库,如果需要从mysql切换到postgresql或sqlite只用修改一行代码就可以实现切换。

编译需要支持c++17的编译器,gcc7.2, clang4.0,vs2017 upate5+.

让我们来看看如何使用ormpp吧:

如何你想把数据库换成postgresql或sqlite,你仅仅需要将mysql类型换成postgresql或sqlite, 其他代码不需要做任何修改,非常简单。

ormpp让数据库编程变得简单,enjoin it!

祝程序猿们节日快乐

又到1024了,怎么过程序猿节呢,还是写一段有趣的代码来庆祝这个节日吧。
这段代码可以保证你的程序永远只输出1024,无视数字的顺序,并且能在程序运行之前就发现你的错误,保证你永远不会犯错, 杜绝bug:)
也许只有c++才有这样的魔力了,have fun programmers。

cppcon2017之旅(一)

cppcon大会介绍

cppcon大会是c++社区规格最高的国际技术大会,组织方是C++标准委员会,大会为期七天,参会人员超过一千人。每次有一百多位讲师,他们是来自世界各地的C++专家,围绕十几个主题做演讲。今年大会的topic有这些:

  • C++11/14/17
  • C++ libraries and frameworks of general interest
  • ISO standardization proposals
  • Parallelism/multi-processing
  • Concepts and generic programming
  • Functional programming
  • High performance computing
  • Software development tools, techniques, and processes for C++
  • Practical experiences using C++ in real-world applications
  • Industry-specific perspectives: mobile and embedded systems, game development, high performance trading, scientific programming, robotics, etc.

大会面向的观众主要是工业界,主要是公司的C++开发者和技术专家,国外的世界知名公司都会派人参会,今年有超过1100人参会。
大会讲师招募主要是通过报名,先在官网上填报名表,报名阶段为期一个月,之后是一个月的评审阶段,由四位专家对报名信息进行评审,评审通过之后就可以成为cppcon讲师了。

以我的经验来看,cppcon评审专家喜好创新的idea。新颖的观点,新颖的技术是你成为讲师的重要保证。本次大会参会人员主要来自欧美,很少有来自中国的,甚至来自亚洲的都很少,希望国内的C++高手也能多参与一下cppcon,可以借此机会了解到世界上C++的前沿和最新的发展趋势,还能认识世界各地的C++专家和爱好者,机会难得!不过要提醒一下的是cppcon要用英文演讲,所以需要练练口语。

我的行程

cppcon大会的门票比较贵,一千美元,如果算上机票和住宿的话会是一笔不小的开销,所以参会的观众大都是公司赞助的。不过成为大会讲师的话,不仅可以免门票还可以提供一周的住宿,还有讲师晚宴,自己仅仅需要提供机票就行了,还是挺不错的。

cppcon大会日期是9月24-9月30号,我于9月23号号从香港直飞西雅图,12个小时的飞行,到达西雅图的时候是当地时间八点,天气还有点冷。这是我第二次到美国,第一次去美国,是五月份的时候参加cppnow技术大会,在科罗拉多州的aspen,那次经过了两次转机,总共经过了19小时,那真是一个漫长的旅程,所以这次到美国感觉还挺快的。来西雅图之前,有美国的朋友告诉我美国大城市可不像aspen那样,aspen那边主要是自由主义,大城市里可能会有“白人种族主义”,对外国人不友好,还稍微有点担心。到了西雅图之后发现这是没必要的担心,当地人很友好。由于大会举办地在Bellevue, 是离西雅图很近的一座小城,我需要打车去那里,出了机场之后遇到了uber的一个工作人员,她建议我通过uber打车,我在她的帮助下用上了uber很快就叫到了一辆车。很快就上高速了,在车上和司机闲聊了一会儿,等我发现一座城市出现在我眼前时,我问司机这是不是西雅图市区,他告诉我已经到bellevue了,真的很快,大概就十几分钟。bellevue2
bellevue街景随拍

t-shirt dinner

到了酒店之后我直接睡觉了,因为这时在国内已经是深夜,睡到下午四点多起来,五点多有t-shirt dinner,之后就是去会场讲师登记和领t-shirt,会场可以和其他讲师自由交流。在酒店一楼看到一个熟悉的身影,原来是C++之父 Bjarne Stroustrup,这是我第二次和他见面了,和他打了一个招呼,跟他说等会儿有个t-shirt dinner,他说他在等一个朋友。去t-shirt dinner的路上遇到了一起去的一群人,里面有几个老朋友,两个来自德国的讲师,上次在aspen的cppnow上就和他们认识了,还一起爬山,这次又见面了。路上还和两个来自荷兰的观众聊了一会儿,他们是做金融软件的,和他们谈论了我将要演讲的内容,他们很感兴趣,说会去听我的演讲。

在吃饭的时候又遇到了mike,去年在上海的c++大会上也和他聊过,他说他今天晚上有一个宣传海报,等会儿要去宣传。吃饭的时候还和sqlpp的作者聊了一会儿,他说要讲c++17的sqlpp。我问了他几个问题,问他是否考虑引入反射,我说反射可以直接将数据表映射到对象,他说他现在是通过行和列来取值的,还没考虑过用反射。我又问他sqlpp是不是线程安全的,他说部分是的,我又问他测试过sqlpp的性能没有,他说没有。
饭后大家陆续到达会场了。我领了讲师牌和t-shirt。
card1

t-shirt

我到会场的时候已经又很多人了,大厅里立了很多海报,mike已经在进门口的地方宣传他的海报了。
mike

mikeposter
mike和的宣传海报

他向大家介绍的就是C++17的一个新特性dedution guideline,也是他十多年前就提出了特性,终于在c++17加入进去了,他向观众介绍说这是c++17最重要的一个特性之一,我也很喜欢。

一个很棒的日期库,是一位从加拿大过来的中国人开发的,他在向大家介绍他的日期库,他也将在lighting talking上讲。
datetime

一个做性能测试的网站
benk

facebook工程师的海报
fb

c++之父的背影
bs

一个可爱的c++17蛋糕
cake

在会场上和很多上次在cppnow大会上认识的朋友又见面了,大家热烈地讨论着c++,氛围非常好,足足聊了三个小时才散场。

未完待续……

中国C++大会招募讲师

大会介绍

从1985年由Bjarne Stroustrup在贝尔实验室发明以来 ,C++作为一门系统级语言,早已超越一门编程语言的影响。由其构建的庞大的系统级软件,已经成为当今世界IT与互联网应用的关键支撑。秉承“全球专家、连接智慧”的理念,我们特邀众多C++和系统软件领域的海内外技术领袖与一线工程实战专家,于2017年11月17日-18日在北京举办“全球C++及系统软件技术大会”。

大会的主办方是博览网, purecpp是大会的合作方之一,purecpp社区创始人祁宇作为大会的技术出品人之一,负责招募国内外的优秀讲师。这将是purecpp社区参与举办一场高水平、国际化的C++大会,大会的形式和内容将会与cppcon类似但又具备中国特色,如果你不能亲自前往美国参加cppcon那么就不要错过这次在中国举行的C++大会。希望参会的观众可以在官网购票

大会主题

  1. C++ 14/17揭秘
  2. 高性能与高可用
  3. 框架与库应用
  4. 多线程与并发编程
  5. 分布式与网络应用
  6. 设计模式与实践
  7. 低延迟与嵌入式
  8. 行业案例研究

讲师报名

不管你是什么学历、什么公司、什么国家,只要你有和C++有关的创新的idea,你就可以报名!
讲师报名需要填一个报名表,类似于cppcon,你需要提供演讲者的信息、演讲的摘要信息和主要内容。如果你有很有说服力的证明材料就更好了,证明材料是能证明你演讲内容的代码或之前的ppt。

讲师报名阶段一个月左右,报名阶段结束之后就是评审阶段。采取的是专家评审方式,由两名中国专家和两名外国专家对演讲内容进行评审,评审通过的讲师就可以参会了。无论评审通过与否我们都会告知报名者结果。

这次大会的外国讲师和中国的讲师比例大约为1:2,竞争也会比较激烈,因此填一份好的讲师报名表很重要。

希望中国的C++高手和天才们赶紧报名成为讲师,中国的C++大会将因你而不同!

讲师报名表

C++17中的deduction guide

deduction guide可以根据参数自动推导出对应的类型,这可以让我们的代码变得更加简洁,看下面的写法:

从上面的例子中可以看到隐式的deduction guide可以让我们的代码写得更加简洁,不用再写模版参数等细节了,有一种写动态语言的感觉。

除了隐式的deduction guide,还有一种显式的deduction guide,作用和隐式deduction guide差不多,也是让写法变得更简洁。下面是显式deduction guide的例子:

如果没有通过Dummy(double) -> Dummy显式地做deduction guide,我们在定义Dummy的时候是需要显式带着模版参数的。也许有人觉得就为了省掉一个模版参数却要多定义一个显式的deduction guide,似乎还变麻烦了。其实显式deduction guide主要是为了简化定义可变模版参数的变量,之前介绍过通过std::visit来访问variant, 通过auto lambda和if constexpr来访问variant的做法不是很方便,我们可以通过可变模板和显式deduction guide的来实现一个访问variant的更好的方法。

上面的例子中先通过可变模版参数的CRTP获得参数的operater(),然后通过显式的deduction guide来省去定义含可变模版参数overloaded的变量时,需指定变参类型的麻烦,让代码变得非常简洁。这里不仅仅是让代码变得简洁,还直接避免了一个难题,因为overloaded参数是lambda,它是一个匿名类型,你无法获取lambda的类型并实例化overloaded模版。

Modern C++ Meta-programming组织今天成立

purecpp社区在6月份的时候就发出加入Modern C++ Meta-programming组织的邀请, 陆续收到十几份typelist的实现,大部分实现都挺不错的,思路各异,殊途同归。现在成立Modern C++ Meta-programming组织的时机已经成熟,专门的qq群已经建立,后面可能会将大家实现的typelist代码在社区公开出来。
Modern C++ Meta-programming组织的主要目标是研究modern c++的元编程,新的技术,新的思想,新的编程范式以及应用。
如果有想加入Modern C++ Meta-programming组织的朋友请按之前邀请中的要求发送typelist源码到社区邮箱purecpp@163.com,经审核通过之后才可以加入组织。

cppcon2017详细日程公布

cppcon2017将于9.23-9.29在华盛顿的贝尔维尤举办,cppcon的详细日程正式公布在官网上了,本次大会的主旨演讲嘉宾有4位,分别是:

  1. Bjarne Stroustrup,C++之父。
  2. Herb Sutter, C++标准委员会主席。
  3. Lars Knoll, QT公司CTO。
  4. Matt Godbolt,Compiler Explorer的创始人

另外还有来自世界各地的100多位演讲嘉宾将出席本次大会。
purecpp社区将会第一时间带来关于本次cppcon大会的最新资讯。

cppcon2017将于九月在华盛顿州的贝尔维尤举行

今年的cppcon将于9.24-9.27在华盛顿州的贝尔维尤举办,将有一百多位来自世界各地的C++好手和专家奉上精彩的演讲,世界各大知名公司均会参会,这是一场C++技术盛宴。随着C++17的确定,相信今年会涌现出更多的新思想和新技术。purecpp社区创始人祁宇也将在这次的大会上做一个演讲。purecpp社区将持续关注cppcon2017技术大会的最新资讯。

欢迎关注purecpp社区的微信公众号。
qrcode_for_gh_300922997283_430

Copy Protected by Chetan's WP-Copyprotect.