c++ - C3409 : empty attribute block is not allowed by noreturn

标签 c++ visual-studio-2013 noreturn

我从 VS2013 中的 noreturn 收到一个错误 C3409: empty attribute block is not allowed

以下是代码片段:

#ifndef CPPX_NORETURN
#   define  CPPX_NORETURN [[noreturn]]
#endif

...

namespace std {
    class nested_exception
    {
    private:
        exception_ptr nested;

    public:
        CPPX_NORETURN      // error is here
             void rethrow_nested() const
        {
            rethrow_exception(nested);
        }

有人可以帮我弄清楚如何解决这个错误吗?提前致谢。

最佳答案

VS2013 不支持 C++11 属性特性(VS2015 支持它)。

https://devblogs.microsoft.com/cppblog/c111417-features-in-vs-2015-rtm/

您可以使用 __declspec(noreturn) 代替 [[noreturn]]

https://msdn.microsoft.com/en-us/library/vstudio/k6ktzx3s%28v=vs.100%29.aspx

关于c++ - C3409 : empty attribute block is not allowed by noreturn,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32815196/

相关文章:

c++ - C++ 模板中具有参数化类型的结构如何初始化?

windows-phone-8 - 无法开发人员解锁 Windows Phone 8 设备

c++ - 函数的属性是什么意思?

c++ - 可疑情况下的 Clang 警告 : function 'foo' could be declared with attribute 'noreturn' ?

javascript - 如果 javascript 文件中存在语法错误,我的 ASP.NET Visual Studio 2013 项目构建会失败吗?

c++ - 覆盖 [[noreturn]] 虚函数

c++ - 我可以将 auto_ptr 放入 STL 容器中吗?

c++ - 链接具有不兼容依赖项的库

python - 访问自定义操作的输入值时出现段错误

c++ - 迁移到VS2013比较运算符错误C2678 :binary '==' no operator