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文字列を使ったときと同様のノリで static constexprメンバ変数として数字配列を作成したらリンクエラーがでました class Hoge{ public: static constexpr auto array = {1,2,3,4}; // Error static constexpr auto word = (char*)"hoge"; // O…
Variadic TemplateをつかったSTLのTemplate Template parameter イディオム 後ついでにmember関数の有無をチェックするヘルパクラスを使ったSFINAE http://melpon.org/wandbox/permlink/usQueFzSHaHzzzLN ↓ declval() → T() の方がコンパイル時間が早い? ht…
返り値型が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>…
やり方 is_constructibleを使えばよかったようです http://melpon.org/wandbox/permlink/HmXdOTNXMO53kIUy
テンプレーメタプログラミング(TMP)というものをC++においてよく見かけます 私の理解が曖昧なので、とりあえずまとめることにします 前提知識として 関数のオーバーロード C言語とC++の言語使用の違いの例として、よく「同一の名前を持つ関数を複数定義で…