De acuerdo con el estándar C ++ (7.1.6.2 Especificadores de tipo simple)
3 Cuando se permiten múltiples especificadores de tipo simple, se pueden mezclar libremente con otros especificadores de declinación en cualquier orden.
Entonces, por ejemplo, la siguiente declaración es válida
long static long const int x = 10;
Incluso puede usar el constexpr
especificador junto con el const
calificador. Por ejemplo
constexpr long static long const int x = 10;
Por cierto, nos olvidamos del especificador signed
! Agregémoslo, por ejemplo, antes del declaradorx
constexpr long static long const int signed x = 10;
En C también puede usar varios calificadores de tipo en la misma secuencia de declarador de especificador. De acuerdo con el Estándar C (6.7.3 Calificadores de tipo)
5 Si el mismo calificador aparece más de una vez en la misma lista de calificadores-especificadores, ya sea directamente o mediante uno o más typedefs, el comportamiento es el mismo que si apareciera solo una vez ...
Entonces, por ejemplo, en C, la siguiente declaración también es válida
const long const long static const int const signed x = 10;
Entonces, si se le paga de acuerdo con la cantidad de símbolos escritos en el programa, le aconsejo que use tales declaraciones. :)
std::swap
. Esto no se compilará si los tipos no son idénticos.