У меня есть класс MyType
, который реализует пользовательский арифметический тип c. Этот класс предоставляет следующий оператор преобразования
struct MyType
{ ...
operator double()
{
return to_double(); // This converts my type to a double value
}
... };
Использование этого класса следующим образом работает нормально:
double d = MyType(1);
Однако, используя этот класс как тип в std :: complex, например,
#include <complex>
std::complex<double> c = std::complex<MyType>(1,1);
завершается с ошибкой следующего компилятора:
error: conversion from 'std::complex<MyType>' to non-scalar type 'std::complex<double>' requested
Любая помощь для решения этой проблемы приветствуется.
Matthias