C++17

[C++]集成体のコピー/ムーブコンストラクタを制御する

C++17にて集成体はあらゆるコンストラクタを宣言できなくなり、その結果コピーコンストラクタとムーブコンストラクタは常に暗黙定義されるようになりました。しかし時には、それをコントロールしたくなることがあります。 暗黙のコンストラクタ 集成体の利便…

[C++]後から触られないグローバルRAIIラッパー

C言語のライブラリにたまにある、最初にグローバル状態を~init()で確保して、それを最後に~release()で解放するというインターフェースについて、C++から使うときはRAIIで自動化したい衝動に駆られます。そのとき問題となるのは、プログラムの最初で初期化し…

[C++]to_chars()とfrom_chars()ってはやいの??

<charconv>ヘッダはC++17から導入されたヘッダで、ロケール非依存、動的確保なし、例外なげない、などを謳ういいことづくめで高速な文字列⇄数値変換を謳う関数が提供されています。現在フルで実装しているのはMSVCだけですが、実際速いってどのくらいなの?既存の手段</charconv>…

[C++]構造化束縛の動作モデルとラムダキャプチャ

一部のコンパイラでは構造化束縛宣言で導入された変数をラムダ式によってキャプチャすることができません。 実は、厳密に規格にのっとればC++17ならば出来ない、C++20からはできる、が正しい動作になります。 ただ、規格を眺めてもC++17でできず、C++20でき…