std::sqrt()是std::complex<T>(const std::complex<T>&)型的。为什么我不能把它存储在这个std::function里呢?我得到的错误是:
错误:从“”转换为“非标量类型”std::function(const::complex&)>请求
#include <complex>
#include <functional>
#include <iostream>
int main(){
using Complex = std::complex<double>;
std::function<Complex(const Complex&)> f = std::sqrt;
std::cout << "sqrt(4): " << f(std::complex<double>(4,0)) << "\n";
return 0;
}发布于 2020-03-05 14:08:10
您刚刚忘记了分配的模板参数。
#include <complex>
#include <functional>
#include <iostream>
int main(){
using Complex = std::complex<double>;
std::function<Complex(const Complex&)> f = std::sqrt<double>;
std::cout << "sqrt(4): " << f(std::complex<double>(4,0)) << "\n";
return 0;
}https://stackoverflow.com/questions/60547115
复制相似问题