Відповідно до стандарту C ++ (7.1.6.2 прості специфікатори типу)
3 Якщо дозволено декілька специфікаторів простого типу, їх можна вільно змішувати з іншими специфікаторами decl у будь-якому порядку.
Так, наприклад, наступна декларація є дійсною
long static long const int x = 10;
Ви навіть можете використовувати constexpr
специфікатор разом з const
класифікатором. Наприклад
constexpr long static long const int x = 10;
До речі, ми забули про специфікатор signed
! Додамо його, наприклад, перед деклараторомx
constexpr long static long const int signed x = 10;
В C ви також можете використовувати кілька класифікаторів типу в одній послідовності декларувати специфікатори. Відповідно до стандарту С (6.7.3 Кваліфікатори типу)
5 Якщо той самий класифікатор відображається неодноразово в одному і тому ж списку специфікаторів-класифікаторів, безпосередньо або через один або кілька типів, поведінка є такою ж, як якщо б вона з’явилася лише один раз ....
Так, наприклад, в С також діє наступна декларація
const long const long static const int const signed x = 10;
Тож якщо вам платять відповідно до кількості символів, набраних у програмі, то я раджу використовувати такі декларації. :)
std::swap
. Це не складеться, якщо типи не є ідентичними.