jeudi 5 mars 2020

How to store std::sqrt in std::function

std::sqrt() is of type std::complex<T>(const std::complex<T>&). Why can't I store it in this std::function? The error I get is:

error: conversion from ‘’ to non-scalar type ‘std::function(const std::complex&)>’ requested

Run it here:

#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;
}

Aucun commentaire:

Enregistrer un commentaire