2019-08-01から1ヶ月間の記事一覧

[C++]継承関係を跨ぐメンバ関数テンプレートのSFINAEには注意すべし。

C++

基底クラスと派生クラスとの間で、同じ関数名、同じ引数、同じ戻り値のメンバ関数をそれぞれ定義し、SFINAEによってそれらを呼び分けることが出来ないかと考えたことがある。 例えば次のようなコードがあったとする。 struct Base { template <class T, std::enable_if_t<std::is_integral<T>::value, std::</class>…

[C++]range-based for loopはindexを持てるし、複数のコンテナの同時走査だってできる。ちょっとだけ頑張れば。

C++

※本記事の内容をC++20の<ranges>に対応するように更新した記事があります。C++20を使用中の方はそちらを参照してください。->std::ranges::views::zip、enumerateの代替機能を作ってみる。 私はrange-based for loopを十分に扱えていなかったのだと思い知った今日こ</ranges>…

[C++]コンパイル時と実行時の橋渡し。

C++

モダンC++では、できるだけコンパイル時に処理をして実行時のコストを軽減する設計が望ましいとされる。それは高速化やポリモーフィズムという観点では確かに正しいのだが、往々にして面倒な状況を生む。例えばstd::tuple<...> tに格納した各値について、実…

C++用のGnuplotラッパーライブラリを一般公開することにした。

タイトルのとおりである。ADAPT-GPM2という名前のライブラリだ。 github.com C++によるグラフ描画のためのライブラリは意外と見つかる。CERN開発の統計解析ライブラリであるROOT、マックス・プランク研究所開発のDISLIN、その他PGPLOTやPLplot、比較的小規模…

ブログ開設。

研究関係のブログを始めることにした。 私は某大学で日々研究に勤しんでいるかもしれない貧乏人である。かれこれ十年近く、日常的な話題を取り扱う個人的なブログを続けてきたのだが、あちらは曲がりなりにも匿名で行っている以上研究内容に言及するような話…