C言語を学んでから、C++を学んでいるものです。
C++のvectorの再実装をするためにllvmのソースコードリーティングをしています。そこで理解できないコードがあったので質問します。
c++
1template <class _Tp, _Tp __v> 2struct integral_constant { 3 static const _Tp value = __v; 4 typedef _Tp value_type; 5 typedef integral_constant type; 6 operator value_type() const _NOEXCEPT { return value; } 7}; 8 9template <class _Tp, _Tp __v> // <= ここがわかりません 10const _Tp integral_constant<_Tp, __v>::value; // <= ここがわかりません
libcxx/type_traits at master · llvm-mirror/libcxx
テンプレートクラスを宣言した後にconstで変数の宣言をしているようです。これはグローバル変数を宣言しているのでしょうか。これにはどういった意味があるのでしょうか。
c++
1template <class _Tp, _Tp __v> 2const _Tp integral_constant<_Tp, __v>::value;
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/01/07 08:38