reverse tupleとかbindがどうのこうの

また゛また゛ しゅき゛ょうか゛ たりないようた゛(´・ω・`;) とりあえずつっこむだけつっこんだだけ
0

template < class Tuple >
struct reverse_tuple {
Tuple tuple_;
// ...
};

template < std::size_t Index, class Tuple >
auto get(reverse_tuple<Tuple> const& rtuple)
-> decltype(foobar)
{
return // TupleSize - Index要素を返す.
}

template < class... As >
return_type f(As&&... as){
return // forward_as_tupleとreverse_tuple使って逆順のtupleを構成し, index tuple idiom使って展開する.
}

I @wx257osn2

Variadic Templates Functionの関数パラメーターパックを逆順に読む方法って無いの

2011-12-25 03:14:58
I @wx257osn2

※コンパイル時に

2011-12-25 03:15:28
I @wx257osn2

bind…使ったこともなければ見たこともない

2011-12-25 03:16:28
おしょー@実際モチベーションがない @manga_osyo

constexpr でないならば、 std::tuple が Boost.Fusion で使えるので、それでなんとか…。

2011-12-25 03:18:05
I @wx257osn2

ちなみにやろうとしてることはf<N>(c,args...){return c==N?{{args...}}:f<N>(c+1,args...,1, reverse(args...) );} みたいなやり方だから結構無茶苦茶 というかまず関数だと引数に渡せないからアウト

2011-12-25 03:19:26
I @wx257osn2

ついでにconstexpr なんか無知ゆえに不可能をやろうとしてる気しかしない

2011-12-25 03:19:50
I @wx257osn2

@SillyCrown どんな感じになるんでしょか…(´・ω・`)

2011-12-25 03:22:05
I @wx257osn2

templateでListを実装…?

2011-12-25 03:23:26
I @wx257osn2

あと40分で書いてdefineでできる限り文字数削って年賀状に載っけるには難易度高そうですね…

2011-12-25 03:25:42
I @wx257osn2

割と頭がフットーしてきてるけど流れはおおよそつかめてきた…

2011-12-25 03:38:28
I @wx257osn2

あー、reverseは排除して処理内容はTに移譲ってことか

2011-12-25 03:42:38
I @wx257osn2

で、そのTがおしょーさんのreverse tuple、と

2011-12-25 03:43:19
おしょー@実際モチベーションがない @manga_osyo

Variadic Templates で値を扱うのであれば、tuple を使ったほうがいい気がする。型として扱うならちとめんどうだけど。

2011-12-25 03:45:33
おしょー@実際モチベーションがない @manga_osyo

あーいや、型だけなら Boost.Fusion 使えばいいのか。constexpr 関係ないし。

2011-12-25 03:47:20
おしょー@実際モチベーションがない @manga_osyo

std::tuple → Boost.Fusion → Boost.MPLって流れかな。

2011-12-25 03:47:37
I @wx257osn2

@SillyCrown ですよねー… ついでにconstexprで、かつ先ほどの説明になんとかついていけてる程度のレベルなのでこれをあと20分で実装するのは到底…

2011-12-25 03:47:53
I @wx257osn2

また゛また゛ しゅき゛ょうか゛ たりないようた゛(´・ω・`;)

2011-12-25 03:49:32