《Effective Modern C++》条款3
条款3:理解decltype
(Understand decltype
)
decltype
可以告诉你一个变量或一个表达式的类型。
一般情况下,decltype
返回的类型和你所给变量或表达式的类型一模一样
1 | const int i = 0; // decltype(i) is const int |
decltype
(Understand decltype
)decltype
可以告诉你一个变量或一个表达式的类型。
decltype
返回的类型和你所给变量或表达式的类型一模一样1 | const int i = 0; // decltype(i) is const int |
auto
类型推导(Understand auto
type deduction)除了在一种情况下,auto
类型推导和模板类型推导是一样的。
在条款1中,使用以下统一的函数模板:1
2template<typename T>
void f(ParamType param);
和统一调用方式:1
f(expr);
在函数是f
的调用过程中,编译器使用expr
来推断T
和ParamType
。
当一个变量使用auto
来声明时,auto
扮演了模板中T
的角色,且该变量的类型说明符扮演了ParamType
的角色。因此,同条款1中一样,根据变量的类型说明符的形式分三种情况:
模板的类型推导是现代C++
最引人注目的特性之一auto
的基础,因此要真正理解模板类型推导的各个方面。
函数模板:1
2template<typename T>
void f(ParamType param);
调用方式:1
f(expr); // call f with some expression
在编译过程中,编译器使用expr
来推导两个类型:T
、ParamType
。被推导出的T
的类型不仅取决于expr
的类型,还取决于ParamType
的形式。有三种情形:
译自:https://www.python.org/dev/peps/pep-0008/
PEP: | 8 |
---|---|
Title: | Style Guide for Python Code |
Author: | Guido van Rossum |
Status: | Active |
Type: | Process |
Created: | 05-Jul-2001 |
Post-History: | 05-Jul-2001, 01-Aug-2013 |
本文对Python
的主要发行版本的标准库代码给出了编码约定。关于Python
的C
实现中的C
风格指南请见相关的PEP[1]。
本文和PEP 257(文档字符串约定
)改编于Guido
最初的Python
风格指南文章,并从Barry
的风格指南中汲取了一些内容[2]。
因为语言本身的变化,本风格指南也随着时间的推移而演变,更多的约定被发现,过时的约定被淘汰。
许多的项目有他们自己的编码风格指南。如果和本指南发生了冲突,项目应该居先考虑项目特定的指南。
使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。
请假由谁批要看天数?