使用寄存器存储类作为类成员变量时出错

时间:2018-01-24 08:19:23

标签: c++

#include <iostream>
using namespace std;

class test
{
    public:
        register int a;
};

int main() {
    // your code goes here
    test t;
    t.a = 10;
    return 0;
}

我收到以下错误:

  

错误:为&#39; a&#39;

指定的存储类

有没有办法将寄存器存储类用作成员变量?

1 个答案:

答案 0 :(得分:8)

根据storage duration

  

寄存器说明符仅允许在块作用域和函数参数列表中声明的对象。

所以你不能将它用于类成员变量。

请注意,此说明符已过时:自 C ++ 11 以来已弃用,并且自 C ++ 17 后完全删除 - 只需让编译器执行优化。