__attribute__ ((warn_unused_result)) 的 Visual Studio 等效项

Posted

技术标签:

【中文标题】__attribute__ ((warn_unused_result)) 的 Visual Studio 等效项【英文标题】:Visual studio equivalent for __attribute__ ((warn_unused_result)) 【发布时间】:2014-11-10 11:06:37 【问题描述】:

考虑以下代码:

struct MyType;

MyType myFunction() __attribute__ ((warn_unused_result))

    return MyType;


int main()

    myFunction();
    auto storMyType = myFunction();

不存储myFunction 的返回值是一个逻辑错误,我希望所有编译器都出现编译错误。 Visual Studio 2013 是否有任何等价物?

【问题讨论】:

MSVC equivalent of __attribute__ ((warn_unused_result))? 的可能重复项 @OrangeDog 是的,是重复的 【参考方案1】:

注解是_Check_return_

注释返回值并声明调用者应该检查它。如果在 void 上下文中调用函数,检查器会报告错误。

但是,我相信 SAL 注释仅在 Visual Studio 的 Premium 和 Ultimate 版本中可用。

MSDN: Annotating Function Behavior

【讨论】:

以上是关于__attribute__ ((warn_unused_result)) 的 Visual Studio 等效项的主要内容,如果未能解决你的问题,请参考以下文章

__attribute__

__attribute__ ((__packed__)); 怎么用?

GCC的__attribute__ ((constructor))和__attribute__ ((destructor))

gcc之__attribute__简介及对齐参数介绍

__attribute__((destructor)) 修饰函数

__ATTRIBUTE__ 知多少?