C3409: пустой блок атрибутов не разрешен noreturn

Я получаю одну ошибку C3409: empty attribute block is not allowed от noreturn в VS2013.

Вот фрагменты кода:

#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);
}

Может ли кто-нибудь помочь мне разобраться, как исправить эту ошибку? Заранее спасибо.

0

Решение

VS2013 не поддерживает функцию атрибутов C ++ 11 (поддерживается VS2015).

http://blogs.msdn.com/b/vcblog/archive/2015/06/19/c-11-14-17-features-in-vs-2015-rtm.aspx

Ты можешь использовать __declspec(noreturn) вместо [[noreturn]],

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

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]