対数オーダーでN番目の引数にアクセスするvalue_at的関数

夜 (fimbul11) on Twitter
さんの
Template Meta Programming入門から応用まで

の367ページ当たり見ながら書いた
深度O(logN)で動くvalue_at的な関数

http://melpon.org/wandbox/permlink/i0YgUwd8wdsJBDJE
gccとClangで動作確認。VSではstd::index_sequenceがらみを自前のものに差し替えれば動く
右辺値参照も問題なくmoveするので問題はない(はず)
型に関してはスライド通り一旦型をwrapなりidentityクラスなりにぶち込んで関数通して結果を取り出せばよい