2016-04-08 15 views
2

にクラスを割り当てることができるかどうか、確認し、二つのクラス、ab与えるために、いくつかの表現最も一般的な方法は、私はC++で別の

my_a = my_b; 

が有意義になるかどうかを確認するための最も一般的な方法は何ですか?私はis_convertibleを使用することを考えましたが、キャスト演算子を検出しません。おそらくプリミティブ型でのみ動作しますか?場合、私はtrueを得るために私のテストをしたいと思います:

  • abが同じ
  • bある

    a
  • aにキャストすることができb項目

を受け入れ代入演算子を持っています等々。そんなことをする方法はありますか?

答えて

6

std::is_assignableを参照してください:

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

私にとってはうまくいかないようです。更新1をご覧ください。 –

+0

@MatteoMontiこれはあなたの変換演算子がプライベートであるためです。 – Simple

+0

私はとても愚かです。 –

0

あなたはis_constructibleをチェックするかもしれないが、これはキャストが含まれています。

関連する問題