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

[C++]std::bindはnon-copyableな引数を束縛できない。

C++

タイトルのとおりである。std::bindはnon-copyableな引数を束縛できないので、rvalue referenceを引数に取るような関数の扱いには注意を要する。 std::bindは、何らかの関数に事前に引数を与えた関数オブジェクトを生成する機能である。事前に引数を与えてお…

DISLIN解説②

解説①に引き続き、本稿ではまだるっこしいことはどうでもいいからグラフを描いてみよう、という趣旨の解説を行う。ちなみに③の予定はない。私がDISLINに愛想を尽かし、使うことを諦めてしまったからだ。 というわけで、ありがちなsin、cos関数をプロットして…

DISLIN解説①

最近、C++でのグラフ描画のためにDISLIN(マックス・プランク研究所開発)を試していた私だが、C++からグラフを描くには多くの場合Gnuplotが選択されるようで、そうでない場合もROOT(CERN開発の統計解析ライブラリ)やせいぜいPLplot(多言語対応のグラフ描…

[C++]std::functionに与える関数はcopy-constructibleでなければならない。

C++

std::functionは関数ポインタも関数オブジェクトもメンバ関数ポインタもまとめて管理することのできるとても便利な機能である。std::functionは"引数"と"戻り値"の型のみ指定されていればよく、それ以上は何も要求しないので、引数と戻り値の等しい関数オブ…

[C++]テンプレートテンプレートパラメータの“テンプレート引数の数”を取得することはできるのだろうか。

C++

例えば次のようなクラステンプレートX、Yがあったとする。 template <class> struct X {}; template <class, class> struct Y {}; Xはテンプレート引数が1個、Yはテンプレート引数が2個である。 このX、Yを次のようなクラステンプレートに与えてみる。このXorYは、与えられたXやY</class,></class>…