C stdioやiostreamsに代わる高速で型安全なC++フォーマットライブラリ。C++20のstd::formatを実装しています。
fastfloat/fast_float
文字列から float、double、整数値を高速かつ正確に解析する、from_chars互換のヘッダーオンリーC++ライブラリ。
- スター
- 2,134
- フォーク
- 200
- 未解決の Issue
- 29
- 最終コミット
- 5 日前
これは何?
fast_floatは、float、double、整数型向けにC++17スタイルのfrom_chars関数を実装したヘッダーオンリーのC++ライブラリです。"1.3e10"のようなASCIIの10進数文字列を、round-to-evenを含むIEEEの正確な丸めで二進数に変換します。例外を投げず、メモリも確保しません。
標準インターフェースに加えて、小数点記号のカスタマイズ、Fortran形式の数値、JSONやJavaScriptの厳密な文法に対応するオプションを備えています。UTF-16とUTF-32の入力も受け付け、固定幅の浮動小数点型をサポートし、C++20ではコンパイル時にも使用できます。
C++11を対象とし、32ビットと64ビット、ビッグエンディアンとリトルエンディアンの各環境で、Visual Studio、macOS、Linux、FreeBSDから利用できます。CMake、CPM、Conan、Homebrew経由で導入できるほか、単一のヘッダーファイルとしても利用できます。
主な機能
- 01floatとdoubleを解析し、正確な最近接偶数丸めの結果を返します。
- 022、10、16などの基数で符号付き・符号なし整数型を解析します。
- 03例外を投げたりメモリを確保したりせず、std::errcでエラーを通知します。
- 04JSON、JavaScript、Fortranの文法と、小数点記号をカスタマイズした文法に対応します。
- 05ASCII、UTF-8、UTF-16、UTF-32の入力を受け付けます。
- 06ヘッダーオンリーライブラリまたは単一のヘッダーファイルとして利用できます。
ユースケース
- データベースエンジンやデータパイプラインで、大量の数値テキストを解析する。
- 厳密な文法チェックが必要なJSONやJavaScriptのパーサーで数値を読み取る。
- C++11以降を対象とするプロジェクトに高速な数値変換を組み込む。
- 速度が重要なCSVやログファイルから数値を解析する。
クイックスタート
- 1
fast_float ディレクトリをプロジェクトの include パスにコピーし、ヘッダーをインクルードします
使う前に知っておきたいこと
- 10進数の入力のみサポートされます。16進数の文字列は解析されません。
- long double 型はサポートされていません。
- 浮動小数点の丸めモードが最近接丸めに設定されていることを前提とします。
トピック
よくある質問
- fast_float とは?
- 文字列から float、double、整数値を高速かつ正確に解析する、from_chars互換のヘッダーオンリーC++ライブラリ。 fast_floatは、float、double、整数型向けにC++17スタイルのfrom_chars関数を実装したヘッダーオンリーのC++ライブラリです。"1.3e10"のようなASCIIの10進数文字列を、round-to-evenを含むIEEEの正確な丸めで二進数に変換します。例外を投げず、メモリも確保しません。
- fast_float は無料で使えますか?ライセンスは?
- fast_float は Apache-2.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- fast_float は今もメンテナンスされていますか?
- 活発にメンテナンス中。fast_float の最終コミットは 2026年10月19日 です。
- fast_float は何に使えますか?
- データベースエンジンやデータパイプラインで、大量の数値テキストを解析する。 厳密な文法チェックが必要なJSONやJavaScriptのパーサーで数値を読み取る。 C++11以降を対象とするプロジェクトに高速な数値変換を組み込む。 速度が重要なCSVやログファイルから数値を解析する。
- fast_float のインストール方法は?
- fast_float ディレクトリをプロジェクトの include パスにコピーし、ヘッダーをインクルードします
- fast_float はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/fastfloat/fast_float
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
ブロッキングソケットI/OでHTTP/HTTPSサーバーとクライアントを構築できる、C++11対応のシングルヘッダーライブラリ。
HTTP/WebSocketサービスを構築するための、高速で使いやすいFlask風C++マイクロフレームワーク。ヘッダーオンリーで利用できます。
標準の unordered/ordered コンテナを置き換えられる、高速でメモリ効率に優れたハッシュマップ、セット、B-tree コンテナを提供するヘッダーオンリーの C++ ライブラリ。
スレッド間のメッセージ受け渡しを低レイテンシで実現する、ヘッダーのみのC++14製ロックフリー・リングバッファキュー。
Luanti(旧Minetest)は、Luaによるmod対応でゲームを作成・プレイできる、無料のオープンソース・ボクセルゲームエンジンです。