随笔分类 - 语言特性
摘要:本文汇总了 C++11 中的运算符的含义、优先级分组及其结合性。 如果两个运算符用于同一个操作数,首先应用优先极高的。如果两个运算符优先级相同,按结合性规则决定应用那个运算符。同一组中的运算符优先级和结合性相同,无论先左后右(L-R),还是先右后左(R-L)。 运算符 含义 优先级分组 结合性 ::
阅读全文
摘要:本文描述了如何运用 type traits 来约束模板的类型参数,要求参数类型满足某种条件,例如,参数类型只能是某种类型的派生类。 ◆ 目的 如何能够约束模板的类型参数,在满足某种条件下模板才能成功地具体化? ◆ 解法 可以运用 type traits 来约束模板的类型参数。其要点在于用 typen
阅读全文
摘要:本文描述了将可变参数(variadic)按照格式化字符串的方式输出至标准输出(stdout)或文件流(ofstream)的一种实现方案,并加以了验证。 ◆ 目的 如何让可变参数按照格式化字符串的方式输出至标准输出(stdout)或文件流(ofstream)? ◆ 解法 通过可变参数函数(variad
阅读全文
摘要:本文描述了在定义类的静态成员函数模板的显式具体化时出现的一个编译警告问题,并在解释其原因后给出了对应的解决办法。 ◆ 问题 头文件中定义了类的静态成员函数模板的显式具体化,代码编译没有出错,但出现如下警告信息: warning: explicit specialization cannot have
阅读全文
摘要:本文以 3 行 2 列的二维数组为例,介绍了如何声明自动存储、静态存储和动态存储的二维数组,及其如何将它们作为函数参数进行传递的方式。 ◆ 目的 如何声明自动存储、静态存储和动态存储的二维数组,及其将它们作为函数参数进行传递? ◆ 解法 针对自动存储或静态存储的二维数组, 声明,需在数组名后指定维数
阅读全文
摘要:本文描述了在绑定重载函数时出现的一个编译问题,并在解释其原因后给出了对应的解决办法。 ◆ 问题 代码中存在重载(overloaded)的自由函数(也称全局函数)或类成员函数,当开发者尝试用 std::bind 绑定其中一个时,会提示如下编译错误: error: no matching functio
阅读全文