2024-01-01から1年間の記事一覧

C++20 些末事 標準入力で入力した数値のうち、最大値と最小値を標準出力に出力する

コード // 0個以上の数値を入力して、入力された最大値と最小値を表示する。 #include <cmath> #include <iostream> #include <limits> #include <ranges> auto main() -> int { using value_type = int; auto min = std::numeric_limits<value_type>::max(); auto max = std::numeric_limits<value_type>::min(); // </value_type></value_type></ranges></limits></iostream></cmath>…

C++20 enumで日本語を使いたい | consteval関数でassertを使う

はじめに プログラミング言語C++ではenumが使えます。 しかしenumは日本語文字列が使えません。 enum class hoge { "青", "黄", "赤" }; // NG 日本語で書くにはどうするか。 ということで、以下のようにしてみました。 #include <algorithm> #include <array> #include <cassert> #incl</cassert></array></algorithm>…

C++20 CSV iteratorを実装する

はじめに これはCSV Parserを実装するわけではありません。 vincentlaucsb/csv-parserに乗っかって、iteratorを実装します。 国民的人気ブラウザゲーム艦隊これくしょん-艦これ-では、ユーザ有志による検証が非常に盛んに行われています。 その中でも、ダメ…

C++14以上 変数テンプレート

変数をテンプレートで書ける。 ありがちな使用例では、数値をそれぞれの型に、単純なキャストで変換するものが挙げられている。 template <class T> constexpr T pi = static_cast<T>(3.14159265358979323846); 単純なキャスト以外で変数テンプレートを使うにはどうすれ</t></class>…