【发布时间】:2020-04-29 08:40:58
【问题描述】:
我有一个类MyType,它实现了用户定义的算术类型。该类提供以下转换运算符
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
感谢任何解决此问题的帮助。
马蒂亚斯
【问题讨论】: