作用
用于标记某个函数或者类的成员函数的返回值需要处理。
被标记的函数和类的函数被调用,但是返回值没有接收的时候,编译器会warning.
标记函数
#include <iostream>
[[nodiscard]] int square(int x) {
return x * x;
}
int main() {
// 注意:编译时可能会提示未使用返回值的警告
square(1);
return 0;
}
标记类的成员函数
#include <iostream>
int square(int x) {
return x * x;
}
class Point {
public:
int x, y;
Point(int x, int y) : x(x), y(y) {}
[[nodiscard]] int distance(const Point& other) const {
return square(x - other.x) + square(y - other.y);
}
};
int main() {
Point p1(1, 1);
Point p2(2, 2);
p1.distance(p2);
return 0;
}
标记类对于类的成员函数没有影响。