【发布时间】:2020-03-05 14:02:04
【问题描述】:
std::sqrt() 的类型为 std::complex<T>(const std::complex<T>&)。为什么我不能将它存储在这个std::function 中?我得到的错误是:
错误:要求从“”转换为非标量类型“std::function(const std::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;
}
【问题讨论】:
标签: c++ function c++11 templates function-pointers