编译器行为和"register storage class specifier is deprecated"
Compiler behavior and "register storage class specifier is deprecated"
我正在用-std=c++11
测试一些c++代码。我注意到一个以前没见过的警告:
'register'存储类说明符已弃用
标准对此有什么规定(除了已弃用)?
是实现定义的吗?
编译器会把它作为一个提示,并试图把值在寄存器?
这最终会导致编译失败吗?
也许是别的什么?
c++ 11日 [dcl.stc] :
3—
register
说明符是对实现的一个提示,即这样声明的变量将被大量使用。[注意:该提示可以被忽略,并且在大多数实现中,如果变量的地址被忽略,则该提示将被忽略。这种用法已弃用(见D.2)。 -结束说明]
有建议移除register
关键字作为存储说明符,保留其作为关键字:remove Deprecated Use of the register
关键字(n4340)。这可能会在c++ 1z中实现,也可能不会(暂定c++ 17);它将对与C的兼容性提出挑战,其中register
仍然具有语义效应(C register
变量或参数的地址不能被占用或受到数组到指针的衰减)。
是实现定义的吗?
一直都是。
编译器会把它作为一个提示,并试图把值在寄存器?
定义。
号这最终会导致编译失败吗?
EDIT也许我误解了最终编译失败的问题。我把它理解为当前编译的最终失败。如果问题是关于register
关键字的未来,一切皆有可能:我不在乎算命。
相关文章:
- 这个语法std::class<>{}(arg1, arg2) 在C++中是什么意思?
- C++核心准则 C35 对于接口类"A base class destructor should be either public and virtual, or protected and nonv
- 使用模板进行堆栈实现; "name followed by :: must be a class or namespace"
- "Undefined class"作为is_base_of的论据
- 如何将class.cpp和class.hpp编译为一个.o文件
- '{'标记之前的预期类名,然后在预声明时无效使用不完整的类型'class class_name'
- 如何使用"derived input class"创建派生类?
- 错误:"Left of getValue must have class/struct/union"
- ' class a : b ' 和 ' class a : public b ' 之间的继承类不同
- Pybind11 Class Definition
- "Missing type specifier - int assumed"无法通过向主函数添加"return 0"来解决
- 在C++中使用没有合作伙伴Class/Cpp文件的头文件是否实用
- C++ 结构数组 - "This declaration has no storage class or type specifier"
- C++ 中的"this declaration has no storage class or type specifier"错误
- 如何修复派生类给出错误'declaration has no storage class or type specifier'?
- "declaration has no storage class or type specifier" C++
- 错误"this declaration has no storage class or type specifier"
- 使用字符串流时出现"Declaration has no storage class or type specifier"错误
- 编译器行为和"register storage class specifier is deprecated"
- 关闭"'register' storage class specifier is deprecated"警告