2011-06-01から1ヶ月間の記事一覧

boost::array 型のメンバ変数を初期化子リストで初期化する

追記: 名前を変更 (elements → braced2).boost::array に限らず { { args... } } で初期化できるものなら大体使えます.また少し変更すれば { args... } などで初期化することもできます. C++03 では,配列型のメンバ変数を初期化子リストで初期化すること…

C++ で一般化された on を書く

Data.Function on :: (b -> b -> c) -> (a -> b) -> a -> a -> c on f g = \x y -> f (g x) (g y) これの引数の数と型を一般化したものを,C++ を使っていくつかの方法で書いてみました.Variadic な関数オブジェクトを書く上で参考になるかもしれません. …

文字列リテラルを型の世界へ!

C++

以下のようなことを可能にします。 string_test.cpp #include <iostream> #include "./string.hpp" template <class> struct print; template <char ...String> struct print<udon::string<String...>> { void operator()() const { char const s[] = { String..., 0 }; std::cout << s << std::endl; } }; int main() </udon::string<string...></char></class></iostream>…