11

std::has_virtual_destructor同様のチェックをどのように実装できますか? Visual Studioでヘッダーを調べてみましtype_traitsたが、マクロとテンプレートが多すぎてわかりません。このチェックは合理的に単純な形式で表現できますか? 今のところわからないので、少なくともその動作原理を知りたいです。

4

1 に答える 1

14

型特性の多くはコンパイラの魔法を必要とします: 特性は基本的に、さまざまなコンパイラによって提供されるいくつかのフックへのライブラリ インターフェイスを提供します。コンパイラがこれらのフックを実装する方法は完全にコンパイラ次第であり、一貫したインターフェイスはありません。

現在の会議では、将来のリビジョンにリフレクションを追加することについての議論がありました。これは、トレイトがstd::has_virtual_destructor<T>. ただし、反射のようなものが現れるまでには、しばらく時間がかかります。

于 2013-09-28T18:20:31.997 に答える