C++C++2020-02-20std::variantと不動点演算子C++実は、std::vectorはC++17から不完全型をサポートしたので、std::variantと組み合わせると以下のようなコードが書ける。これを上手く使えばJSONなどの木構造をかなり簡単に(ポインタを陽に触らずに)扱える。Fortranこういうツイートを見た。気になったので試してみたら本当にそうらしい。x64でEAXに値を入れるとRAXの上位は(符号拡張ではなく)0になる。C/C++で配列の添え字に32bit整数を使うと符号拡張命令が追加されて遅くなる。cudathrustがasync対応していたのを先月見つけた。ドキュメントがまるで書かれていないところをコードを読み進めて試していたのだが、そこで不可解な動作を発見した。以下のようなコードを書いたとする。OpenMP少し前、ちょっと面白い挙動に出くわしたので、順を追って説明しておこうと思った。知ってる人には当たり前のことが書かれているので下の方まで飛ばしてくれても構わない。cmakeCMakeの最新バージョン、3.16でtarget_precompile_headerがサポートされていた。ドキュメントは以下の通り。以前こういう記事を書いた。eliminationするのは当たり前じゃんという気はするが、備忘録的に。C++thrustというライブラリがある。使ったことがなくても、CUDAをインストールしたら付いてくるので知らずにインストールしている人は多いと思う。toml11しばらく前だが、アップデートした。最新バージョンはv3.1.0だ。TOML言語仕様はまだちょいちょいバージョンアップされている。「TOMLとしてリリースされていないがtoml-lang/toml:masterにmergeされた、お...toml11をマイナーアップデートした2019-09-22インデントのスタイルについてC++そういえば、自分のインデントスタイルについて人に話すことってないなと思ったので。インデントやコードのスタイルは初心者には軽視されがちだ。それは「本質ではない」からだ。どんなコーディングスタイルでも動くものは動く。コンパイラにとって...インデントのスタイルについて2019-09-13入力に応じてテンプレート引数を変えるC++C++は静的に型付けを行うので、基本的に実行時に型を切り替えることはできない。入力に応じて異なる型を返すことはできない。C++gccには-Ofastというオプションが存在する。これは、標準規格への適合性を犠牲にしてでも高速なバイナリを吐くモードだ。色々なことが犠牲になるが、NaNチェックも犠牲になる。以下のコードを見て欲しい。errorになるC++タイトルが長い。これ以上何かを削ると不正確なタイトルになる。するともう少し条件を広げても同じエラーが出るかも知れないが。templateというのがあり、以下の記事に詳しい。かい摘んで説明しておこう。errorになる2019-08-12メモ:cerealと派生クラス2C++cerealで継承を使ったサンプルを少し前に掲載したが、これらのクラスがテンプレートだったらどうなるか。継承関係を登録するマクロ。