2011-10-19 12 views

答えて

0

1つのオプションは、boost type traitsを使用することです(または勇気がある場合は、そのライブラリのソースを見てください)。

コンパイル時に、型が別の型から継承しているかどうかを検出し、適切な実装を選択できます。

1

in the manual for boost::enable_ifと記載されているように、boost :: enable_ifとboost :: is_base_ofを組み合わせることができます。

template <class T> 
T foo(typename enable_if<boost::is_base_of<base,T> >::type* dummy = 0); 
関連する問題