__attribute__((pure))
如果 C++ 类构造函数只能通过其参数访问数据,那么它们是否可以并且应该被声明?在哪些情况下他们应该被认定为__attribute__((const))
?
问问题
244 次
1 回答
2
pure
当您将构造函数限定为or时,GCC 会发出警告const
。这是因为构造函数不返回任何内容(returns ),并且在此类函数上具有 a或属性void
没有多大意义。pure
const
在此处查看 Godbolt 演示。
<source>:3:30: warning: 'pure' attribute on function returning 'void' [-Wattributes]
A() __attribute__((pure));
^
<source>:8:31: warning: 'const' attribute on function returning 'void' [-Wattributes]
B() __attribute__((const)); ^
来自 GCC文档:
const
...
因为 const 函数不能有任何副作用,所以这样的函数返回 void 是没有意义的。诊断出声明这样的功能。pure
...
因为纯函数不能有任何副作用,所以这样的函数返回 void 是没有意义的。诊断出声明这样的功能。
于 2018-11-19T13:34:06.503 回答