ページへ戻る
印刷
技術系備忘録/C++/小技/templateクラスの中のtemplateクラスの書き方
をテンプレートにして作成 ::
シンクリッジ
xpwiki
:技術系備忘録/C++/小技/templateクラスの中のtemplateクラスの書き方 をテンプレートにして作成
開始行:
C++ は(も)使い続けてないと(使い続けていても)書式を忘...
というわけで、template クラスの中の template クラスの sta...
#prettify{{
// ↓いくらネストしてようと定義するだけは難しいことなく書...
template <typename TA> struct ClassA
{
template <typename TB> struct ClassB
{
static const TB id;
template <int TC> struct ClassC
{
static int Func();
};
};
};
// ↑のようなネストした定義の実体の書き方は以下↓。これが出...
template <typename TA> template<typename TB> const TB Cla...
template <typename TA> template<typename TB> template<int...
{
return TC * TC;
}
// で、使う場合はこんな感じ↓で難しいことなく書ける。
void Func()
{
long i = ClassA<int>::ClassB<long>::id;
int n = ClassA<double>::ClassB<float>::ClassC<1>::Fun...
}
}}
以上、だいぶ以前に書いたブログの記事を引っ張ってきました。
終了行:
C++ は(も)使い続けてないと(使い続けていても)書式を忘...
というわけで、template クラスの中の template クラスの sta...
#prettify{{
// ↓いくらネストしてようと定義するだけは難しいことなく書...
template <typename TA> struct ClassA
{
template <typename TB> struct ClassB
{
static const TB id;
template <int TC> struct ClassC
{
static int Func();
};
};
};
// ↑のようなネストした定義の実体の書き方は以下↓。これが出...
template <typename TA> template<typename TB> const TB Cla...
template <typename TA> template<typename TB> template<int...
{
return TC * TC;
}
// で、使う場合はこんな感じ↓で難しいことなく書ける。
void Func()
{
long i = ClassA<int>::ClassB<long>::id;
int n = ClassA<double>::ClassB<float>::ClassC<1>::Fun...
}
}}
以上、だいぶ以前に書いたブログの記事を引っ張ってきました。
ページ名: