Tenho escrito alguns testes para aritmética de números complexos.
Tentei escrevê-los de uma forma em que não preciso reescrever uma seção de código para cada operador. Estou tentando armazenar std::complex
operadores sobrecarregados como operator+
, operator+=
, operator-
, operator-=
em uma std::function
variável. A razão pela qual preciso dos std::complex
operadores é porque preciso verificá-los em relação à minha própria implementação de números complexos.
No entanto, não consigo fazê-lo funcionar, principalmente porque parece haver uma incompatibilidade entre o tipo da variável ( std::function
) e o tipo do valor ( std::complex
operadores). Como devo escrever o código para poder armazenar essas funções de operador em uma std::function
variável?
Esta é minha tentativa, mas infelizmente não funciona:
std::function<void(std::complex<double>&, const std::complex<double>&)> var =
&std::complex<double>::operator+=;