学习C++标准Attributes

Last Updated: 2023-08-20 14:15:49 Sunday

-- TOC --

所谓attributes,是代码中用[[...]]包裹起来的说明,它们的作用是给编译器提供信息,由于这是C++标准,因此这种给编译器提供信息的方式,是跨平台的。

https://en.cppreference.com/w/cpp/language/attributes

[[nodiscard]]

用来说明某个函数接口的返回值,不应该被丢弃,如果代码丢弃了,编译器应给出warning。如下面的代码,g++编译的时候,会给出warning,因为func调用的返回值没有被使用。

[[nodiscard]]
int func(){
    return 1;
}

int main(){
    func();
    return 0;
}

[[maybe_unused]]

用来说明某个函数的入参,可能不会被使用,用来抑制编译器的warning。下面这段代码,如果没有使用[[maybe_unused]],就有可能会产生-Wunused-parameter的warning:

int func([[maybe_unused]]int a){
    return 1;
}

int main(){
    func(0);
    return 0;
}

本文链接:https://cs.pynote.net/sf/c/cpp/202302012/

-- EOF --

-- MORE --