2014-03-01から1ヶ月間の記事一覧

素数の個数を求める

http://ideone.com/5A9Zxg をC++で置き換えてみた http://ideone.com/e5xgrV C++14版 http://melpon.org/wandbox/permlink/3vZnPjuGYRG6Hyvj http://melpon.org/wandbox/permlink/cTbebcWZhqmdFz77 (2014,4/5) 今気が付いたのですが、単位がおかしいですね・…

constexprの実体化?

C++

昔、constexpr文字列を使ったときと同様のノリで static constexprメンバ変数として数字配列を作成したらリンクエラーがでました class Hoge{ public: static constexpr auto array = {1,2,3,4}; // Error static constexpr auto word = (char*)"hoge"; // O…

TMPいろいろ試してみた

C++

Variadic TemplateをつかったSTLのTemplate Template parameter イディオム 後ついでにmember関数の有無をチェックするヘルパクラスを使ったSFINAE http://melpon.org/wandbox/permlink/usQueFzSHaHzzzLN ↓ declval() → T() の方がコンパイル時間が早い? ht…

TMPの条件分岐を記載する場所

C++

返り値型がvoid型 template<typename T> typename enable_if< /*条件式*/>::type func(T t) { } template<typename T> typename enable_if::type func(T t) { } 返り値型が引数型に依存 その(1) template<typename T> typename enable_if< /*条件式*/,T>::type func(T t) { } template<typename T> typename</typename></typename></typename></typename>…

コンテナの内部型が特定のコンストラクタを所有しているか否かで関数のオーバーロード分岐(SFINAE)

C++

やり方 is_constructibleを使えばよかったようです http://melpon.org/wandbox/permlink/HmXdOTNXMO53kIUy

TMPわからん

C++

テンプレーメタプログラミング(TMP)というものをC++においてよく見かけます 私の理解が曖昧なので、とりあえずまとめることにします 前提知識として 関数のオーバーロード C言語とC++の言語使用の違いの例として、よく「同一の名前を持つ関数を複数定義で…