[過去ログ] Boostを語れゴラァ part3 (1001レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
439: 2006/12/15(金)22:17 AAS
vc8はタダなんだから落としてこいよ
440: [age] 2006/12/15(金)22:17 AAS
bjamのバージョンを下げたらビルドできました
でも最新のでやりたかったです。
誰かエロい人いたら
bjamの3.1.13-1
で出来るか試してみてくれませぬか、
3.1.11-1だと上手くいきました。
441: 2006/12/15(金)22:44 AAS
そこまでしてVC6にしがみつく理由がわからん。
442: 2006/12/15(金)22:54 AAS
gccもあるし、8にもそのうち乗り換えるさ…
つかコンパイラの話しじゃなくて、bjam3.1.13-1が動かなくない?
って話しで
443: 2006/12/15(金)23:16 AAS
プリコンパイル済みヘッダー と boost.testって一緒に使えないのかな
444: 2006/12/15(金)23:44 AAS
VC6は(今の基準では)C++として腐ってるからBoost向きではない
445: 2006/12/15(金)23:53 AAS
VC6は2038年問題とかだけでも捨てるべきだろ。
少なくとも業務で使ってるってのならその会社は潰れてしかるべき。
ぜひ潰れて欲しい。
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で直る・・・はず・・・だといいな・・・
上下前次1-新書関写板覧索設栞歴
あと 533 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ
ぬこの手 ぬこTOP 0.009s