C++ 中的自动类型推导

模板参数推导

函数模板类型推导

简单的函数模板:

1
2
template <typename T>
void f(ParamType param);

调用时:

1
f(expr);

在编译期间,编译器会推导两个类型:一个是 T ,另一个是 ParamType ,比如:

1
2
3
4
5
6
template <typename T>
void f(const T& param);

// 调用
int x = 0;
f(x);

T 推导为 int ,ParamType 推导为 const inst& ,T 的推导不仅取决于 expr 的类型,还取决于 ParamType 的类型。

大理游记

苍山雪,洱海月,上关花,下关风

这句谚语意思是大理点苍山白雪皑皑,洱海湖月明水秀,石门关花团簇锦,龙尾关风光宜人。形容云南大理到处景色优美。

花了一个周末的时间去大理逛了逛,证实了上面的谚语没有说错。

Windows 上使用 emacs 收发邮件

介绍

在 Linux 和 MacOS 上用 Emacs 收发邮件有很多工具和教程,但是在 Windows 上基本不可行。我一直在 Windows 上使用 Emacs,之前用 Foxmail 处理邮件,现在想把邮件处理和 org mode 的 agenda 系统联系起来,所以就研究了一套能够正常在 Emacs 中处理邮件的方案。

Dart 的语法

语言简介

Dart 语言是为客户端开发而设计,优先考虑多平台的开发,它的主要特点:

  • 编译型:为了支持多平台而开发的各种编译器
  • 强类型:使用静态类型检查,也支持 dynamic 类型及运行时类型检查
  • GC :由 Dart 运行时环境负责分配和管理内存
  • 面向对象:基于 mixin 继承机制

Dart 平台

Dart 通过编译技术来支持各种不同的平台:

emacs 中 C++ 缩进的设置

本文是 cc-mode 缩进的设置,所有继承自 cc-modemajor mode 都可以参考,如 c++

缩进的设置主要是两个方面的设置:

  1. tab 的设置
  2. 代码中各个地方的缩进设置

tab 设置

tab 的设置主要是两方面: