[過去ログ] Boostを語れゴラァ part3 (1001レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
446: 2006/12/16(土)01:39 AAS
Cとしてしか使わないならVC6最高じゃん
447: 2006/12/16(土)01:49 AAS
>>466
同感!

最近 STL 使おうって思ってやっと 2005 に切り替えました!
448: 2006/12/16(土)02:23 AAS
激しくスレ違いで申し訳ないが…

8だとテンプレートをネスト出来たりするかね?
ならば今すぐ買いに行くさ。
449: 2006/12/16(土)02:34 AAS
するする。今すぐ買いに行け。
450
(1): 2006/12/16(土)02:36 AAS
これか?
template < typename T >
struct Foo
{
template < typename P >
static void Bar() ;
} ;

Foo<int>::Bar<int>() ;

あるいはこれか?
template < typename T,
template<typename, typename>
class Container >
class Foo
{
Container< T, std::allocator<T> > cont ;
} ;

Foo< int, std::vector > FooVec ;

どちらもできる……が、後者は、なぜかテンプレートテンプレートパラメータのデフォルト引数が使えない。

//エラー
template< template <typename, typename = std::allocator<int> > class Container >
class Foo
{ Container<int> cont ; } ;
451: 2006/12/16(土)02:39 AAS
まじかよ…
部分特殊化だけかと思ってた…

今すぐ買いに行くわ
確かファミマにあったはず。アカデミックだけど。
452: 2006/12/16(土)02:44 AAS
あ〜、後者ですわ。
デフォルト指定は無理なのかぁ…、
まぁいい機会だし買いに行きま。
453: 2006/12/16(土)02:44 AAS
>テンプレートテンプレートパラメータのデフォルト引数
そんな言語機能があったなんて!
いったいなんのためにあるんだろう。
454: 2006/12/16(土)03:29 AAS
メタ関数として使えそうなんで用意したけど実際にはいまいち使えなかった、
という感じか?>テンプレートテンプレートパラメータ
455: 2006/12/16(土)03:47 AAS
いや、テンプレートテンプレートパラメタには意味があると思うんだが、
テンプレートテンプレートパラメタ「の」デフォルト引数ってなかなか出てこない発想じゃないだろうか。
ふつうの関数だと
void f(int (*g)(int = 7)){}
不正みたいだし。
456: 2006/12/16(土)03:50 AAS
普通に使いますから。
テンプレートクラスでデフォルト引数が使えるのは(allocatorなど)当たり前のことだし、
テンプレートの引数に、テンプレートクラス使えないのは不便で仕方がない。
457
(1): 2006/12/16(土)06:04 AAS
そこで、boost.preprocessorですよ。
458
(1): 2006/12/16(土)06:06 AAS
え、VC8でも
hoge<hage<int>>;
みたいのはできないの?

デフォルト引数を定義しなければ使えるってこと?
459: 2006/12/16(土)06:15 AAS
>>458
シンタックスエラー!
460: 2006/12/16(土)06:40 AAS
uho!
461: 2006/12/16(土)06:46 AAS
>>457
preprocessorで何ができると?
462
(1): 2006/12/16(土)12:19 AAS
Tはテンプレート引数でコンテナ型です。

typedef typename boost::mpl::if_<boost::is_const<T typename T::const_iterator, typename T::iterator>::type Hoge;
typedef typename boost::mpl::if_<boost::is_const<T typename T::const_pointer, typename T::pointer>::type Hage;
typedef typename boost::mpl::if_<boost::is_const<T typename T::const_reference, typename T::reference>::type Debu;

こういうことをやりたいんですが、もっとシンプルに記述できる方法はないでしょうか?
463: 2006/12/17(日)06:55 AAS
プリプロセッサを使ってもシンプルにはならないだろうし、読みにくくなるだけかと。
そもそも何でそういうことがしたいのか分からない。
渡されたコンテナがconstでなければ、書き換える。
constであれば書き換えないという、奇妙な関数でも書きたいのだろうか。
464
(1): 2006/12/17(日)17:28 AAS
>>462
boost::range_result_iterator< std::vector< int > >::type         // -> std::vector< int >::iterator
boost::range_result_iterator< const std::vector< int > >::type // -> std::vector< int >::const_iterator

あとは上のように獲得した iterator 型に boost::iterator_[reference|pointer] を適用
465: 2006/12/17(日)23:17 AAS
>>464
うわぁ、Boost.Rangeチョー便利ナリ・・・
boost::sizeとかあるし。sizeof(a) / sizeof(a[0])とかしてたのが馬鹿みたいだ。
いいものを教えてもらった、ありがとう。
466
(1): 2006/12/18(月)08:19 AAS
templateもろくに通らないからVC6から2005に切り替えたよ
467: 2006/12/18(月)15:00 AAS
今度はワイド文字ストリームがろくに使えないVC 2005。
468
(1): 2006/12/18(月)16:09 AAS
VC 2005 SP1で直る・・・はず・・・だといいな・・・
469: 2006/12/18(月)18:20 AAS
その SP1 では graph library が使えないということらしいが
470: 2006/12/18(月)18:23 AAS
>>468
直ってないような気がする・・・
471: 2006/12/18(月)18:28 AAS
いや、気がするんじゃなくて間違いなく直ってないや。
472: 2006/12/18(月)18:40 AAS
SP1出たんだな
473: 2006/12/18(月)18:46 AAS
STLPort使うとなぜかは知らないがlocale::globalの後でもimbueが効くようだ。
474
(1): 2006/12/18(月)21:57 AAS
なあ、boostいじってるC++狂の連中はWebアプリケーションはなにで
書いてるんだ?
俺、JavaもPerlもやる気しねーよ。もっとC++でWebアプリ書くフレーム
ワークとか環境とか色々あってもいいのになあとか思うんだが。
475: 2006/12/18(月)21:59 AAS
boostいじってるC++狂の連中はWebアプリケーションなんてかったるいものは
書かないんじゃないかな
1-
あと 526 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ

ぬこの手 ぬこTOP 0.044s