C++11設定を追加しておく。側で実際の処理を作る。(これだけちょっと面倒。インタフェース定義もここで。渡したいので、変換かける。ファイルが生成される。名前を同じにしてはいけない。作り出され、重複定義と言われてしまう。symbol」のエラーで読み込み失敗。クラス内デストラクタを定義したはいいものの実装していなかったのが原因。定義と実装揃ってないとエラー出る。(わかりやすいエラー出してくれ。英語だけど最新の情報を見た方が参考になる。Python前回まででPythonからサンプルを使ってみることができるようになった。今回は、2次元numpy配列をC++側で作成し、Python側に戻せるようにしてみる。サンプル「行列サイズを指定し、そのサイズにあった2次元numpy行列を返す」サンプルを作ってみる。使ってゼロ配列を作成し、そこに値を入れ込む形で実装する。(場合によってはもっと高速な方法あるかもだけどとりあえず。)2次元ができてしまえば、1次元はもっと簡単なので省略。サイズ、shape、タイプ」。基本的にはPythonのものと同じ。1次元vectorでデータを用意し、std::copyでデータを移す。retvec);}ビルドCMakeLists.txtは前回と同じなので割愛。配列を戻すところまでできた。ここまでで大体の処理はC++化して高速化できそう。boost::python?stackoverflow。Boost.Numpyで戻り値取ってくるためのQ&A。Python以前から「Boost.numpy」というのが便利というのを聞いていたがなかなか使って見る機会が無く。他のブログ等検索したが、自分にちょうど良さそうな記事が見つからなかったので整理しつつ事始めしてみる。Ubuntu16.04で環境構築から始めて、簡単なサンプルをcmakeビルドし、Pythonで呼び出すところまで。辺りから追加された機能。操作することができる。書いた時点で最新は1.67。Python3を使うようにしてあげる。)/opt/boost_1_67_0/lib/libboost_numpy35.so使ってみるサンプルソースコード参照1のコードを使わせてもらう。インクルード等ちょっと修正。第一引数にはPythonで実行時のモジュール名。ビルドで「lib~」となるので見越した名前を付ける。独自インストールなので、それに対応した読み込み。CMakeLists.txtとなっている想定。directoryのところからビルドする。