есть выражение (как часть срединного расчета):, что преобразование применяется в выражении (двойной Int)
auto iter1 = std::next(first, floor(size/2) - 1);
double result = *iter1 + *(iter1 + 1))/2;
, где типа значения при итераторах является Int.
ожидаемый результат, например:
1,5 = (1 + 2)/2
однако, в случае значений 1 и 2 результат равен 1, выглядит как неявное преобразование в Int
пожалуйста, объясните, что такое правило применяется здесь
Что такое 'iter1'? Кроме того, '/ 2.f'. –
Возможный дубликат [Целочисленное деление всегда ноль] (http://stackoverflow.com/questions/9455271/integer-division-always-zero) – JETM
Результат '(1 + 2)' уже имеет тип 'int', no требуется неявное преобразование. –