检查是否可以将一个类分配给另一个类的最常用方法 在C++中,给出两个类, a >代码> b>代码>,检查表达式“< /p>”的最一般方式是什么? my_a = my_b;

检查是否可以将一个类分配给另一个类的最常用方法 在C++中,给出两个类, a >代码> b>代码>,检查表达式“< /p>”的最一般方式是什么? my_a = my_b;,c++,casting,variable-assignment,assign,C++,Casting,Variable Assignment,Assign,会有意义吗?我曾考虑过使用是可转换的,但这并没有检测到强制转换操作符。也许它只适用于基本类型?如果出现以下情况,我希望我的测试结果为true: a和b是相同的 b可以转换为a a具有接受b项的赋值运算符 等等。有什么办法可以完成这样的事情吗?参见: boolx=std::is_assignable::value; 您可以检查是否可构造,这包括强制转换。@MatteoMonti这是因为您的转换运算符是私有的。 bool x = std::is_assignable<decltype(my

会有意义吗?我曾考虑过使用
是可转换的
,但这并没有检测到强制转换操作符。也许它只适用于基本类型?如果出现以下情况,我希望我的测试结果为
true

  • a
    b
    是相同的
  • b
    可以转换为
    a
  • a
    具有接受
    b
    项的赋值运算符
等等。有什么办法可以完成这样的事情吗?

参见:

boolx=std::is_assignable::value;

您可以检查
是否可构造,这包括强制转换。

@MatteoMonti这是因为您的转换运算符是私有的。
bool x = std::is_assignable<decltype(my_a), decltype(my_b)>::value;