函数对象及其特化首先来讨论一下两个重要的函数对象,less和hash。先看一下less,小于关系。在标准库里,通用的less大致是这样定义的: less是一个函数对象,并且是一个二元函数,执行对任意类型的值的比较,返回布尔类型。作为函数对象,它定义了函数调用运算符(operator()),并且缺省行为是对指...
String一般不建议在接口中使用const string&,除非确实知道调用者已经持有 string:如果函数里不对字符串做复杂处理的话,使用const char*可以避免在调用者只有 C 字符串时编译器自动构造 string,这种额外的构造和析构成本不低。反过来,如果实现较为复杂、希望使用 strin...
值分左右我们常说 C++中有左值和右值,但标准里的定义其实更复杂,规定了以下这些值类别:先来看lvalue和rvalue。左值lvalue是有标识符、可以取地址的表达式,例如: 变量、函数或数据成员的名字 返回左值引用的表达式,如++x、x = 1、cout << '' 字符串字面量...
首先,以下代码可以完成智能指针的最基本功能:对超出作用域的对象进行释放。 这里的explicit的作用是禁用隐式转换,必须显式地调用构造函数。 但它缺少了一些东西: 该类对象的行为不够像指针(通过->和*的方式进行操作) 拷贝该类对象会引发程序行为异常 对于第一点比较容易解决,增加几个成员函数...
channel 是什么Go语言当中的并发模型是 CSP(Communicating Sequential Processes),提倡通过通信共享内存而不是通过共享内存而实现通信。如果说 goroutine 是 Go 程序并发的执行体,channel 就是它们之间的连接。channel 是可以让一个 gorouti...
Golang标准库在1.7版本引入了context,它是goroutine的上下文,包含了goroutine的运行状态、环境等信息。context则主要用来在goroutine之间传递上下文信息,包括:取消信号、超时时间、截止时间、键值对等。 Context是什么在Golang的Server里,通常每个请求都会启...
The Rust Programming Language:Getting Started
Introduction顶层的工程化设计与对底层的控制在编程中往往是互斥的,而Rust这个编程语言挑战了这一矛盾。通过平衡强大的技术能力和良好的开发体验,Rust让你可以在控制底层细节的同时,不必承受传统编程语言在这一方面的所有麻烦。众所周知,在更底层的代码中,很容易受到一些微妙的错误的影响,这些错误在传统的编程...
在这篇文章中,我们来学习一下 Kubernetes 声明式 API 的工作原理,以及如何利用这套 API 机制,在 Kubernetes 里添加自定义的 API 对象。 在 Kubernetes 项目中,一个 API 对象在 Etcd 里的完整资源路径,是由:Group(APi 组)、Version(API 版...
在前面的文章中,我们为了使用 API 对象的能力,都需要编写一个对应的 YAML 文件交给 Kubernetes。这个 YAML 文件,正是 Kubernetes 声明式 API 所必须具备的一个要素。不过,只要用 YAML 文件代替命令行操作,就是声明式 API 了吗? 举个例子,Docker Swarm ...
对于前几篇文章分享的 Deployment、StatefulSet 以及 DaemonSet,实际上主要编排的对象都是“在线业务”,即 Long Running Task。比如常用的 Nginx、Tomcat 和 MySQL 等等。这些应用一旦运行起来,除非出错或者停止,它的容器进程会一直保持在 Running ...
Page 3 / 8