Это может быть глупый вопрос, но кто-то может предоставить стандартную ссылку для С++ 11 и C11:
Является ли char стандартным для int?
Здесь немного предыстории: и C, и С++ имеют представления о продвижении аргументов по умолчанию (С++ 11: 5.2.2/7; C11: 6.5.2.2/6). Это подразумевает, что в следующем вызове аргументы продвигаются:
void f(int, ...);
float a = 1; short int b = 2; char c = 'x';
f(0, a, b, c);
Для вызова функции a преобразуется в double, а b преобразуется в int. Но что происходит с c? У меня всегда было впечатление, что char также получает повышение до int, но я не могу найти соответствующее утверждение в стандартах.