例如,我编写了以下类:
class TestClass {
public:
char v(const string &str) const {
return str[0];
}
};
编译器希望我v
用[[nodiscard]]
. 为什么?
例如,我编写了以下类:
class TestClass {
public:
char v(const string &str) const {
return str[0];
}
};
编译器希望我v
用[[nodiscard]]
. 为什么?
根据评论中提到的链接,clang-tidy(在 CLion 中使用)建议
[[nodiscard]]
在函数中添加一个属性,因为 该函数匹配列出的条件列表。条件的本质是函数的可见行为只能通过返回的结果来访问。如果忽略它,那么这样的功能将看起来毫无用处。为了避免这种情况,只存在提到的属性。您可以在此处阅读有关现有 C++ 属性的更多信息。