読者です 読者をやめる 読者になる 読者になる

C++17 optionalの実装について

C++17で、optionalが標準ライブラリに入ることが決定した。そして、C++17 optionalはconstexprに対応している。以前からその実装について気になっていたので調べたついでに少しまとめる。 optionalとは 無効値を取ることのできる型である。C++17 optionalはB…

コンマ

ふと不思議に思ったものがあった。 線形代数ライブラリEigenの行列、ベクトルの初期化方法だ。 Eigen::Vector3d v; v << 1.0, 2.0, 3.0; v; // (1, 2, 3) なんだか妙なことをしている。 どのようなしくみになっているのかを確かめるために実装を調べた。どう…

このコードにはバグがある

今日はこのようなツイートを見た。バグが入ったC++コードらしい。#CEDEC2015 pic.twitter.com/ca9vb0emVT— alwei (@aizen76) 2015, 8月 26 #include <stdio.h> class base_class { public: base_class() { x = 0; y = 0; } public: int x; int y; }; class derived_cl</stdio.h>…

文字列型をキーとしたunordered_map

プログラミングをしている際、文字列型をキーとした連想配列を扱いたい時がある。そのような時に用いられるのは多くの場合unordered_mapだ。 using Map = unordered_map<string, int>; Map m = { { "a", 1 }, { "b", 2 }, { "c", 3 }, }; m["a"]; // 1 m["b"]; // 2 とこ</string,>…