Здравствуйте, Muxa, Вы писали:
M>Пишу тут генератор кода, обнаружил забавное. M>
M> short a;
M> signed short b;
M> short signed c;
M> int short signed d;
M> short int signed e;
M> short signed int f;
M> int signed short g;
M> signed int short h;
M> signed short int i;
M>
M>Я правильно понимаю что все эти объявления эквивалентны?
Да.
M>Есть ли еще способы объявить signed short int переменную?
Раньше можно было ещё auto добавлять:
auto signed short int i;
Сейчас signed short int можно объявить через другую переменную:
signed short int i;
decltype(i) j;
Так же не стоит забывать про auto, хотя это уже не просто объявление.
signed short int i = 0;
auto j = i;
M>(Тоже самое для unsigned вместо signed и long вместо short)
У long (в отличии от short) есть стандартный суффикс, поэтому +1 определение:
short a;
signed short b;
short signed c;
int short signed d;
short int signed e;
short signed int f;
int signed short g;
signed int short h;
signed short int i;
Я правильно понимаю что все эти объявления эквивалентны?
Есть ли еще способы объявить signed short int переменную?
(Тоже самое для unsigned вместо signed и long вместо short)
M> short a;
M> signed short b;
M> short signed c;
M> int short signed d;
M> short int signed e;
M> short signed int f;
M> int signed short g;
M> signed int short h;
M> signed short int i;
M>
M>Я правильно понимаю что все эти объявления эквивалентны? M>Есть ли еще способы объявить signed short int переменную?
M>(Тоже самое для unsigned вместо signed и long вместо short)
#include <type_traits>
int main()
{
using namespace std;
static_assert(is_same<short, short int>::value, "");
static_assert(is_same<signed short, short int>::value, "");
return 0;
}