作用
用于标记某个函数或者类的成员函数的返回值需要处理。
被标记的函数和类的函数被调用,但是返回值没有接收的时候,编译器会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;
}
标记类对于类的成员函数没有影响。