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

pybind11の引数の型に注意。

自作ライブラリのPythonラッパーを作るためにpybind11を導入している私だが、関数引数の型についていくつかのエラーに悩まされたので、備忘録として記しておく。 デフォルト引数の型が適切かどうかはコンパイル時に判定されない。 void func(const std::vect…

[C++]配列でない個別の値を一纏めにしてrange-based for loopで走査、編集したいとき。

C++

先日は複数のコンテナをrange-based for loopで同時に走査する方法を書いたが、今回は配列になっていない同じ型の変数についてループする話。例えばint型の変数i1~i5がある時、i1~i5までをループしたくなったらどうするのか。 よくある方法としては、波括…

[C++]ラムダ式をオーバーロードする。

C++

C++17未満で使える自作Variantを実装する最中、visit関数の動作を調べている中で偶然見つけ、衝撃を受けた。C++のラムダ式は擬似的にオーバーロードすることができる。 #include <iostream> #include <string> template <class ...Ts> struct OverloadedLambda; template <class T, class ...Ts> struct Overloaded</class></class></string></iostream>…