最通用的方法来检查我是否可以将一个类分配给另一个

时间:2016-04-08 11:03:30

标签: c++ casting variable-assignment assign

在C ++中,给定两个类ab,检查某个表达式的最常用方法是什么

my_a = my_b;

会有意义吗?我想过使用is_convertible但是没有检测到强制转换操作符。也许它仅适用于原始类型?如果符合以下条件,我希望我的测试能够产生true

  • ab相同
  • b可以投放到a
  • a有一个接受b
  • 的赋值运算符

等等。有没有办法让这样的事情完成?

2 个答案:

答案 0 :(得分:6)

请参阅std::is_assignable

bool x = std::is_assignable<decltype(my_a), decltype(my_b)>::value;

答案 1 :(得分:0)

您可以查看is_constructible,其中包括演员阵容。