Size: a a a

IT KPI C/C++ ХВ (не UB)

2020 December 05

АХ

Анна Хашпер... in IT KPI C/C++ ХВ (не UB)
источник

АХ

Анна Хашпер... in IT KPI C/C++ ХВ (не UB)
Через VS у меня работает, а stepik пишет
источник

АХ

Анна Хашпер... in IT KPI C/C++ ХВ (не UB)
источник

АХ

Анна Хашпер... in IT KPI C/C++ ХВ (не UB)
А, я поняла. NumberQ там нельзя еще использовать
источник

АХ

Анна Хашпер... in IT KPI C/C++ ХВ (не UB)
А нет, можно...
источник

RN

Ruslan Neshta in IT KPI C/C++ ХВ (не UB)
мельком глянул
источник

RN

Ruslan Neshta in IT KPI C/C++ ХВ (не UB)
не вижу оператора /= для квантити с аргументом дабл
источник

RN

Ruslan Neshta in IT KPI C/C++ ХВ (не UB)
ты его из квантити/дабл вызываешь
источник

RN

Ruslan Neshta in IT KPI C/C++ ХВ (не UB)
// Quantity / double

template<int ...Args>

const Quantity <IntList<Args...>> operator/(const Quantity <IntList<Args...>>& lhs,

    double rhs)

{

    Quantity <IntList<Args...>> result(lhs);

    return result /= rhs;

}
источник

RN

Ruslan Neshta in IT KPI C/C++ ХВ (не UB)
собственно /= надо тоже реализовать
источник

RN

Ruslan Neshta in IT KPI C/C++ ХВ (не UB)
источник

АХ

Анна Хашпер... in IT KPI C/C++ ХВ (не UB)
Ruslan Neshta
собственно /= надо тоже реализовать
Спасибо, добавила
источник

АХ

Анна Хашпер... in IT KPI C/C++ ХВ (не UB)
Но остается ошибка там, где я дабл на квантити делю
источник

АХ

Анна Хашпер... in IT KPI C/C++ ХВ (не UB)
А еще мне не хватало -= и  Quantity - Quantity. Добавила. 2 ошибки остается
источник

АХ

Анна Хашпер... in IT KPI C/C++ ХВ (не UB)
источник

RN

Ruslan Neshta in IT KPI C/C++ ХВ (не UB)
снова бегло просмотрел
// Quantity / Quantity

template< int ...Args1, int ...Args2>

    const Quantity<IntList<(Args1 - Args2)...>>

    operator/(const Quantity<IntList<Args1...>>& lhs,

        const Quantity<IntList<Args2...>>& rhs)

{

    using ResList = typename Zip<IntList<Args1...>, IntList<Args2...>, Minus>::type;

    using ResType = Quantity<ResList>;

    return ResType(lhs.value() / rhs.value());

}

 

// double / Quantity

template<int ...Args>

const Quantity <IntList<Args...>> operator/(double lhs,

    const Quantity <IntList<Args...>>& rhs)

{

    using NumberQ = Quantity<Dimension<>>;

    return (NumberQ / rhs)*lhs;

}

последний оператор возвращает результат такого же типа как и второй аргумент
NumberQ / rhs

вызывает оператор квантити/квантити, но он не подходит - он возвращает результат другого типа
источник

RN

Ruslan Neshta in IT KPI C/C++ ХВ (не UB)
источник

АХ

Анна Хашпер... in IT KPI C/C++ ХВ (не UB)
// double / Quantity
template<int ...Args>
const Quantity <IntList<Args...>> operator/(double lhs,
const Quantity <IntList<Args...>>& rhs)
{
using ResList = typename Zip<Dimension<>, IntList<Args...>, Minus>::type;
using ResType = Quantity<ResList>;
return ResType (lhs/rhs.value());
}``
источник

АХ

Анна Хашпер... in IT KPI C/C++ ХВ (не UB)
Сейчас я вот так делаю, но какая-то ошибка все равно есть в этой функции
источник

RN

Ruslan Neshta in IT KPI C/C++ ХВ (не UB)
Анна Хашпер
// double / Quantity
template<int ...Args>
const Quantity <IntList<Args...>> operator/(double lhs,
const Quantity <IntList<Args...>>& rhs)
{
using ResList = typename Zip<Dimension<>, IntList<Args...>, Minus>::type;
using ResType = Quantity<ResList>;
return ResType (lhs/rhs.value());
}``
тут возвращаемый тип не соответствует тому что ты возвращаешь из функции
источник