d函数属性最佳实践
原文
'const'除外,它不是臭味,因为某些模板是成员函数.并且成员函数上的"const"不能留给推导,因为它恰好是函数可重载类型的一部分.
需要创建显示普通函数,成员函数及其模板上的每个函数属性的含义的二维表,并提出指导方针.
const, inout, shared属性与@safe,@trusted不一样.
属性 | 效果 | 推导 |
|---|---|---|
nothrow | Function | Yes |
pure | Function | Yes |
@nogc | Function | Yes |
@safe | Function | Yes |
@system | Function | Yes |
@trusted | Function | No |
@property | Function | No |
@disable | Function | No |
const | this | No |
immutable | this | No |
inout | this | No |
shared | this | No |
return | this | Yes |
scope | this | Yes |
"推导"中带有"是"的属性的列不应显式应用于属性推导的函数.
包括在模板中定义的函数,以及嵌套函数和具有推导返回类型的函数(即auto函数).
将const放入尽可能多的成员函数中.该准则使函数更有用,因为可以在可变,常和不变对象上调用它.
浙公网安备 33010602011771号