2015-10-01から1ヶ月間の記事一覧

lambda is tuple

理解したのでメモ melpon.org #include <iostream> auto stack = [](auto... xs) { return [=](auto access) { return access(xs...); }; }; auto size = [](auto xs) { return xs([=](auto... z) { return sizeof...(z); }); }; auto push = [](auto xs, auto x) { re</iostream>…

型リストからindex_sequenceを作る

組込のfolding-exprを再帰深度O(1)とみなすと全体でも再帰深度O(1) melpon.org #include <type_traits> #include <utility> template<typename... Types> struct make_indices_from_types { private: template <std::size_t N, std::size_t...> struct make_indices { template <std::size_t M, std::size_t... Indices> make_indices</std::size_t></std::size_t></typename...></utility></type_traits>

printfに型チェックを付ける

どうもコンパイラ拡張で文字列を型パラメータとして取れるユーザ定義リテラルがあるようなので,printfに型チェックを付けるようなのを書いてみた. 桁数表示とか何も実装してないけれど,雰囲気がそれっぽくなってきたあたりで飽きた.もっと賢い実装方法が…