c++ - 为什么 `std::conj(double d)` 不返回 `double` 而是返回 `std::complex<double>` ?

标签 c++ std

对我来说,std::conj(double d) 只返回 double 类型的 d 会更自然,因为结果是绝对是真的。

最佳答案

因为conj是对复数的运算。它匹配 double 的隐式转换至std::complex<double>其中零初始化虚部。

来自 cppreference:

Additional overloads are provided for float, double, long double, and all integer types, which are treated as complex numbers with zero imaginary component.

关于c++ - 为什么 `std::conj(double d)` 不返回 `double` 而是返回 `std::complex<double>` ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64482415/

相关文章:

c++ - 在 linux 环境和 c++ 中是否有用于 perl 的智能 IDE?

c++ - 正则表达式只有字符串中的数字 C++

c++ - 优化编译器可以添加 std::move 吗?

c++ - MSVC 2010 中的 isnan() 在哪里?

c++ - 使用 std::generate 生成矩阵

c++ - 我可以为运算符显式指定模板参数吗?

c++ - 数据拼接时输出成员变量c++

c++ - 为什么我会使用 push_back 而不是 emplace_back?

parameters - Rust 标准库闭包参数 : run time or compile time?

c++ - std::map 查找不能正常工作