[過去ログ] Boostを語れゴラァ part3 (1001レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
646: 2007/01/20(土)00:52 AAS
>>643
おお、ありがとう。
やっぱり戻り値の型が判別できないのが問題なのかな?
色々いじりつつ、もう一度 lambda の sig を読んでみたら、今度はちょっと分かった気が。
template <int i>
struct get {
/**/ template <class Tuple>
/**/ typename boost::tuples::element<i, Tuple>::type operator()(Tuple& t) const {
/******/ return boost::get<i>(t);
/**/ }
/**/ template <class Args>
/**/ class sig {
/******/ typedef typename boost::tuples::element<1, Args>::type Tuple;
/******/ typedef typename boost::tuples::element<i, Tuple>::type Result;
/**/ public:
/******/ typedef typename boost::remove_cv<Result>::type type;
/**/ };
};
bind(get<0>(), _1);
ってことで、こう書いたらとりあえず行けたんだが、こんな感じでいいのかな?
もっといいやり方があったりするんだろうか。
しかし、関数オブジェクトならこれでいい(?)けど、テンプレート関数には sig は使えないよね。
ということは、関数の場合はテンプレート引数を全部指定しないとダメってことかな。
いや、でも、boost::get<> のテンプレート引数全部指定してもダメだったし、キャストしてもムリだったような。
なんかまたよくわからなくなってきた…(´・ω・`)
上下前次1-新書関写板覧索設栞歴
あと 355 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ
ぬこの手 ぬこTOP 0.006s