摘要:
如果你对外语感兴趣,那肯定听过“idiom”这个词。牛津词典对于它的解释叫惯用语,再精简一些可以叫“成语”。想要掌握一门语言,其中的“成语”是不能不学的,而希望成为地道的语言使用者,“idiom”则是必不可少的。程序语言其实和外语也很类似,两者都有自己的语法,一个个函数也就像一个个词汇,大部分的外语 阅读全文
摘要:
最近在使用constexpr的时候无意中踩了个小坑。 下面给个小示例: #include <iostream> constexpr int n = 10; constexpr char *msg = "Hello, world!"; int main() { for (auto i = 0; i < 阅读全文
摘要:
tuple是c++11新增的数据结构,通过tuple我们可以方便地把各种不同类型的数据组合在一起。有了这样的数据结构我们就可以轻松模拟多值返回等技巧了。 tuple和其他的容器不同,标准库没有提供适用于tuple的迭代器,也没有提供tuple类型的迭代接口。所以当我们想要遍历tuple的时候只能自己 阅读全文
摘要:
记录一下配置git操作远程仓库时的自动验证,效果如下图: 本文介绍的是Linux下的配置。Windows上默认已经启用凭证存储和自动验证(依靠wincred实现,以后会使用GCM-Core)。 准备工作 首先需要Linux系统上安装了dbus或者是gnome-keyring(依赖于dbus),如果可 阅读全文
摘要:
隐式类型转换可以说是我们的老朋友了,在代码里我们或多或少都会依赖c++的隐式类型转换。 然而不幸的是隐式类型转换也是c++的一大坑点,稍不注意很容易写出各种奇妙的bug。 因此我想借着本文来梳理一遍c++的隐式类型转换,复习的同时也避免其他人踩到类似的坑。 本文索引 什么是隐式类型转换 基础回顾 直 阅读全文
摘要:
今天是假期最后一天,明天起大家也要陆续复工了。golang1.16也在今天正式发布了。 原定计划是2月1号年前发布的,不过迟到也是golang的老传统了,正好也趁着最后的假期快速预览一下golang1.16的新特性吧。 本文索引 语言內建的资源嵌入支持 支持arm64 go modules的新特性 阅读全文
摘要:
随着Qt 6的发布,cmake也正式宣告接管qmake的工作了。 在之前的一篇博客里我介绍了如何使用cmake管理你的qt项目,不过有一点我没有讲,那就是对国际化(i18n)的处理。 今天我们就来介绍下如何使用cmake+clion配置管理一个包含了国际化支持的项目。 准备工作 你需要准备下面的工具 阅读全文
摘要:
很久没写博客了,不得不说go语言爱好者周刊是个宝贝,本来想随便看看打发时间的,没想到一下子给了我久违的灵感。 go语言爱好者周刊78期出了一道非常有意思的题目。 我们来看看题目。先给出如下的代码: package main import ( "fmt" "time" ) func main() { 阅读全文
摘要:
这里是golang拾遗系列的第三篇,前两篇可以点击此处链接跳转: golang拾遗:为什么我们需要泛型 golang拾遗:指针和接口 今天我们要讨论的是golang中的嵌入类型(embedding types),有时候也被叫做嵌入式字段(embedding fields)。 我们将会讨论为什么使用嵌 阅读全文
摘要:
今天是万圣节,也是golang1.16新特性冻结的日子。不得不说自从go2路线发布之后golang新特性的迭代速度也飞速提升,1.16中有相当多的重要更新,包括io标准库的重构,语言内置的静态资源嵌入等。 本次将要介绍的是新的静态资源嵌入功能,虽然之前已经有相关的提案,但实际的api和提案还有些出入 阅读全文