C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[5]: template引数に不完全な型は指定できるのか? 其の2


(過去ログ 46 を表示中)

[トピック内 7 記事 (1 - 7 表示)]  << 0 >>

■24600 / inTopicNo.1)  template引数に不完全な型は指定できるのか? 其の2
  
□投稿者/ keichan (5回)-(2008/09/04(Thu) 18:01:25)

分類:[C/C++] 

http://bbs.wankuma.com/index.cgi?mode=al2&namber=24571
の続きです。

今回は std::map と std::multimap のみの切り替えで十分なのですが、気になったのでお聞きします。
template 引数の数が違うコンテナも使いたい場合はどうすればいいのでしょうか?

例えば、std::map と std::tr1::unordered_map をユーザで指定したい時など。



この辺の事をWebで検索するためのキーワードが思いつきませんでした。
(generic template C++...)


参考になるサイト・書籍をご存知であれば教えてください。
宜しく御願いします。
引用返信 編集キー/
■24605 / inTopicNo.2)  Re[1]: template引数に不完全な型は指定できるのか? 其の2
□投稿者/ アキラ (104回)-(2008/09/04(Thu) 18:55:56)
アキラ さんの Web サイト
No24600 (keichan さん) に返信
> template 引数の数が違うコンテナも使いたい場合はどうすればいいのでしょうか?
> 例えば、std::map と std::tr1::unordered_map をユーザで指定したい時など。

今のC++ではできないんじゃないかなぁ。
可変引数テンプレートがないと・・・
引用返信 編集キー/
■24606 / inTopicNo.3)  Re[2]: template引数に不完全な型は指定できるのか? 其の2
□投稿者/ keichan (6回)-(2008/09/04(Thu) 19:36:58)
No24605 (アキラ さん) に返信
> 今のC++ではできないんじゃないかなぁ。
> 可変引数テンプレートがないと・・・
なるほど。では引数の数を合わせるようにラッパクラスを作ってあげるのが簡単で分かりやすいかもしれませんね。
ありがとうございました。
解決済み
引用返信 編集キー/
■24611 / inTopicNo.4)  Re[3]: template引数に不完全な型は指定できるのか? 其の2
□投稿者/ アキラ (105回)-(2008/09/05(Fri) 00:18:25)
アキラ さんの Web サイト
No24606 (keichan さん) に返信

いちおうですが、Template Template Parametersを調べるのであれば
『Modern C++ Design』に載ってます。

あとは洋書の『C++ Templates: The Complete Guide』あたりですかね
引用返信 編集キー/
■24612 / inTopicNo.5)  Re[4]: template引数に不完全な型は指定できるのか? 其の2
□投稿者/ melt (5回)-(2008/09/05(Fri) 02:29:16)
melt さんの Web サイト
いくつかのテンプレート引数を bind して選択するなら Boost.MPL が使えるんじゃ?
引用返信 編集キー/
■24613 / inTopicNo.6)  Re[4]: template引数に不完全な型は指定できるのか? 其の2
□投稿者/ ま (119回)-(2008/09/05(Fri) 02:34:37)
門外漢ですが・・・
可変引数マクロでなんとかなりませんかね?

---- 抜粋 ----
テンプレート・テンプレート・パラメータですねー

#include <map>

template<typename T> class moge {};

template<class T, template<class T, class V, class Tr= std::less<T>, class A=std::allocator<T> > class Container>
class hoge {
Container<int,moge<T> > container;
};

int main()
{
hoge<int, std::map> map;
hoge<int, std::multimap> multimap;
return 0;
}

---- 抜粋 ----

上記の”えぴちゃん”のサンプルから
具体的にどこをどうすればいいのかさっぱりわからんのですが・・・はは;;;


引用返信 編集キー/
■24638 / inTopicNo.7)  Re[5]: template引数に不完全な型は指定できるのか? 其の2
□投稿者/ keichan (7回)-(2008/09/05(Fri) 14:01:11)
No24612 (melt さん) に返信
> いくつかのテンプレート引数を bind して選択するなら Boost.MPL が使えるんじゃ?
MPLでどう実現したらいいのか調べていたら、梶本さんのブログで既に実現されていました。
http://d.hatena.ne.jp/uskz/20080904/p6#c

Boostはヘンタイ(良い意味で)だと改めて思いました。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -