テンプレートクラスの静的メンバ変数の実装の仕方 ― 2020年04月06日 11時39分44秒
まずは普通のクラスの静的変数の宣言と実装の仕方。
ここはまだ、直観的で間違えることはない。
class C1
{
static const int variable;
};
const int C1::variable = 1;
接ぎはテンプレートクラスの静的メンバ変数。
template が最初にきて、C2 の後のテンプレートの型指定をする。個人的には、この型指定を忘れることが多い。
template< typename T > class C2
{
static const int variable;
};
template< typename T > const int C2< T >::variable = 2;
C++17 以降だと、宣言文に直接定数を書いても大丈夫になった。
これだったら、忘れにくくて書きやすい。ただ、C++17 でも、これが出来るのは const のある定数だけ。const 無しは以前のように別途、実装する必要がある。
template< typename T > class C3
{
static const int variable = 3;
};
コメント
トラックバック
このエントリのトラックバックURL: http://uyota.asablo.jp/blog/2020/04/06/9232236/tb
※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。
コメントをどうぞ
※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。
※なお、送られたコメントはブログの管理者が確認するまで公開されません。