テンプレートクラスにテンプレート関数を実装する ― 2020年02月24日 14時48分31秒
テンプレートクラスに、テンプレート関数を実装すること自体は、目新しい物でもないが、今回は次回のための前振りも含めている。
簡単な例として、 float 型で値を保持し、print 関数を呼ぶときに static_cast をする。
#include <iostream>
template< typename T1 >
class Class
{
T1 value_;
public:
Class( const T1& value ) : value_( value ){}
template< typename T2 >
void print() const
{
std::cout << static_cast< T2 >( value_ ) << std::endl;
}
};
int main()
{
Class< float > c( 3.14 );
c.print< int >();
c.print< double >();
c.print< bool >();
}
それぞれ、int 型、double 型、bool 型に変換されて出力された。
% c++ template_function_of_template_class.cpp
% ./a.out
3
3.14
1
次回。
コメント
トラックバック
このエントリのトラックバックURL: http://uyota.asablo.jp/blog/2020/02/24/9217315/tb
※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。
コメントをどうぞ
※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。
※なお、送られたコメントはブログの管理者が確認するまで公開されません。