# include <iostream>
# include <complex>
// функция умножения
template<typename _lT, typename _rT>
_lT mult(_lT _lVal, _rT _rVal) {
return _lVal * static_cast<_lT>(_rVal);
};
int main() {
// пример для целых
std::cout << mult(8i16, 4i8) << std::endl;
// пример для комплексных
std::cout << mult(std::complex<double>{ 2.0, 1.0 }, std::complex<double>{222.0, 111.0}) << std::endl;
# include <iostream>
# include <complex>
// функция умножения
template<typename _lT, typename _rT>
_lT mult(_lT _lVal, _rT _rVal) {
return _lVal * static_cast<_lT>(_rVal);
};
int main() {
// пример для целых
std::cout << mult(8i16, 4i8) << std::endl;
// пример для комплексных
std::cout << mult(std::complex<double>{ 2.0, 1.0 }, std::complex<double>{222.0, 111.0}) << std::endl;
};