Rule A7-1-4 (required, implementation, automated)
The register keyword shall not be used.
Rationale
This feature was deprecated in the 2011 C++ Language Standard [2] and may be withdrawn in a later version. Moreover, most compilers ignore register specifier and perform their own register assignments.
Example
// $Id: A7-1-4.cpp 289448 2017-10-04 11:11:03Z michal.szczepankiewicz $
#include <cstdint>
std::int32_t F1(register std::int16_t number) noexcept // Non-compliant
{
return ((number * number) + number);
}
void F2(std::int16_t number) noexcept // Compliant
{
register std::int8_t x = 10;
// Non-compliant
std::int32_t result = F1(number); // Compliant
// ...
}
See also
JSF December 2005 [8]: AV Rule 140 The register storage class specifier shall not be used. HIC++ v4.0 [9]: 1.3.2 Do not use the register keyword