cerealは説明不要のシリアライズ用ライブラリ。派生クラスをstd::unique_ptr<Base>として持っている時の最小サンプル。CEREAL_REGISTER_TYPE(sample::Derived)を名前空間の外に書く。cuda久々に少し非自明なことをCUDA+thrustでやった。大体動くようになるまでまる一日(半日+半日なので別のmetricsでは2日)かかった。BVHとはなんぞやという話は、以下の記事にとてもよくまとまっている。toml11毎回思うんだけどどういうタイミングでリリースタグ打てばいいのかよくわからない。皆どうしてるんだろう。基本的に前回記事を書いた時からそんなに変わっていない。toml11以前「やりたいな〜」と書いた通りの変更をゴリっと入れてみた。マージしていないが、v3ブランチがpushされている。今まで通していたテストは全て通った。追加機能のテストも最低限は通った。if文再訪C++今回はC++規格書のif文周りを読んでみたい。全体何なんだと思う人が大半だと思うが、普段息をするように使っているものだからこそ、規格書を読んでおくのは良いことだと思うのだ。日記ふと、そういえばbrainfuckよりも高級な言語処理系を作ってない(太古の昔に作ろうとした滅茶苦茶なやつは除く)ことを思い出し、ちょっとlisp処理系でも作るか〜〜と思って実装した。C++17になっていたら文字列をstd::string_viewで受け取ったり、toml::valueをstd::string_viewで初期化できるようにした。toml11toml11はしばらく前に開発して、最近も結構いじり続けており、それなりの数のユーザーがついてるっぽくて結構嬉しくなっているライブラリだ。そもそもが自分のために作ったものなので、自分の都合で結構改変することがある。これは、まあレポジトリのオーナ...toml11を60倍高速化した話2019-04-05std::alignを動的メモリ確保と一緒に使うC++はい。C++17を使っている人はnewが全部やってくれるようになったので不要な話です。C++17以前のコードのため。pointerを使う場面C++なんか話題になっていたので、具体例を考えてみたい。通常、C++で継承は使わない。テンプレートの方がたいてい実行時性能がよいので、テンプレートを使うからである[要出典][独自研究]。ContractC++そういえば最近はC++関連のことに触れていないなと思ったので、今日はまだ日本語の説明があんまりないように見えるContractでも取り上げてみたい。サーベイ不足だったら申し訳ない。C++今までRustは使いまわすことのない適当なスクリプト的にしか使ってこなかったので、実際のところ本質的に難しいことは何もしてこなかった。その間は非常に楽で、言われるほど難しくないのではと思っていた。2週間費やしていた作業が完了し、めでたくtoml11のバージョン2.0.0をリリースした。C今日、妙な話を聞いた。CかC++かでコードを書いていたところ、変数名を長くすると32文字だかそこらでtruncateされてしまい、前半が同じ名前の変数を使っているとコンパイルエラーになってしまったというのだ。私は(少なくともC++で)変数名に文字数制限があ...CとC++のIdent2018-10-05std::ratioについてC++C++にはコンパイル時の有理数計算ライブラリがある。個人的な理解では、これは<chrono>のために入ったライブラリで、<chrono>がdurationを綺麗で速い(使いやすいとは言っていない)やり方で実装するためのものだ。コンパイル時に比率を計算できるので、実行時にかかるオーバ</chrono></chrono>...std::ratioについて2018-10-01アライメント解説C++しばらく放置してしまっていた。書くべきことが見つからなかったので。Switchを購入してしまい、遊んでいたというのもあるが。今回は、ちょっと普段気にしないアライメントのことについて話してみようと思う。Addという命令がある。cという形の演算を1命令で処理するものだ。丸めが一度しか走らないので精度がよくなる。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。