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

templateクラスを継承するtemplateクラスのデストラクタをoverrideし、かつdefault指定してextern templateでビルドするとintel compiler (v18)だけlink errorになる

C++

タイトルが長い。 でもこれ以上何かを削ると不正確なタイトルになる。もしかするともう少し条件を広げても同じエラーが出るかも知れないが。 extern templateというのがあり、以下の記事に詳しい。 qiita.com かい摘んで説明しておこう。ヘッダファイルでext…

TOMLで浮動小数点数の指数部分でleading zeroが許可される

github.com これがTOMLの作者(Tom Preston-Werner)の手によってマージされていた。一応masterブランチにマージされてもリリースまでにrevertされる可能性はあるとはいえ、それなりの確率でTOML 1.0.0でリリースされると思われる。 この変更で、以下のよう…

BOOST_ROOTが無視される

今までBoostは1.58~1.69までしかインストールしていなかったのだが、今日1.71をビルドしてインストールした。そしてこれにハマってCMakeCacheやbuild/ディレクトリを消してはCMakeを実行しなおすことを繰り返して10分くらい時間を無駄にした。 github.com リ…

OpenGL + CUDA interopのコードを読む

しばらく前に、CUDAを使ってGPU上に作ったデータをそのままGPU上でpixelの配列にしてそのまま画面に描画しようとしていた。 cuda_practice/ising-show at master · ToruNiina/cuda_practice · GitHub 例えばこれなのだが。これは、isingモデルをシミュレーシ…

メモ:cerealと派生クラス2

C++

cerealで継承を使ったサンプルを少し前に掲載したが、これらのクラスがテンプレートだったらどうなるか。特に、継承関係を登録するマクロ。 この部分だ。 CEREAL_REGISTER_TYPE(sample::Derived) CEREAL_REGISTER_POLYMORPHIC_RELATION(sample::Base, sample…

メモ:cerealと派生クラス

メモです。cerealは説明不要のシリアライズ用ライブラリ。 派生クラスをstd::unique_ptr<Base>として持っている時の最小サンプル。 cereal::base_class<Base>(this)をシリアライズするのを忘れない CEREAL_REGISTER_TYPE(sample::Derived)を名前空間の外に書く。セミコロ</base></base>…