問題タブ [fastformat]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
6 に答える
2971 参照

c++ - Is there a 'catch' with FastFormat?

I just read about the FastFormat C++ i/o formatting library, and it seems too good to be true: Faster even than printf, typesafe, and with what I consider a pleasing interface:

This looks almost too good to be true. Is there a catch? Have you had good, bad or indifferent experiences with it?

0 投票する
2 に答える
891 参照

c++ - Windows FormatMessage の安全で柔軟なファサード

プロジェクトにFormatMessage()を使用する必要がありますが、その恐ろしいインターフェイスが好きではありません。置換パラメーターを許可しながら、それを整理するファサードを知っている人はいますか?

は FastFormat の紹介 の 2 番目の部分を読み、 FormatMessage()の拡張機能を作成することを検討しています(または、FastFormatプロジェクト チームに拡張機能があるかどうかを尋ねます)。他にまともなものがあれば、代わりにそれをつかむでしょう。

私が欲しいのは、次のようなコードを記述できるようにすることです。

結果は次のようになります。

私が構築した現在のラッパーには、次のインターフェースがあります。

これには 2 つの問題があります。

  • int, std::string, void*- ではない任意の型を簡単に渡すことができるため、型安全ではありません。const char*
  • 引数の数と、エラーを表すフォーマット文字列に必要な数が一致しないのは簡単です。

型安全性の観点からFastFormatの機能を考えると、そのメカニズムに従ってFormatMessage()を処理する方法があるかどうかを知りたいです。

0 投票する
1 に答える
172 参照

c++ - 無制限の引数を受け入れる関数で型の安全性を保証するにはどうすればよいですか?

FastFormatライブラリは次のように機能します。

また、「100%型安全性」も主張しています。boost::formatオーバーロードによってそれを達成するなど、他のライブラリがどのようにそれを達成するかを理解できoperator%ます。これは、私のコードでもかなり頻繁に行うことです。

しかし、代わりにコンマを使用できれば、他のプログラマーにとってはそれほど驚くことではありません。テンプレート化された演算子のオーバーロードトリックなしで型の安全性を保証する方法を知りたいのですが。


余談ですが、「テンプレート化された演算子のオーバーロードのトリック」とは何か疑問に思っている場合は、次のようになります。boost :: formatの動作(ほとんど):

0 投票する
2 に答える
369 参照

c++ - C ++フォーマットライブラリは通常、数値フォーマットのために* sprintfにフォールバックしますか?

「すべての」C++フォーマットライブラリが最終的に*sprintf数値をフォーマットする関数にフォールバックするかどうか疑問に思っています。

私はこれを求めています:

  • Visual C ++に付属しているiostreamsライブラリを見ると、ストリームに入力された数値は最終的にはでフォーマットされることがわかりますsprintf_s
  • Boost.Formatは、私が知る限り、利用可能なiostreamライブラリを使用します。
  • FastFormatは、最終的vsprintfに数値のフォーマットに使用します。

それで、 * sprintfを使用せ、フォーマット自体を行うiostreams実装はありますか?数値のフォーマットを*sprintfファミリーの関数に転送しない他のフォーマットライブラリはありますか?

次の形式で回答をいただければ幸いです。

  • いいえ:実装XYはABCを使用して数値をフォーマットします
  • はい:私が知っている他のすべての(たとえばiostreams)実装(X、Y、Z)も、数値フォーマットをstdioに転送します。

過度に投機的な回答は避けてください。

0 投票する
0 に答える
343 参照

c++ - FastFormat を使用してカンマで数値をフォーマットするにはどうすればよいですか?

FastFormatライブラリを使用して、3 桁区切りのカンマを使用して数値をフォーマットするにはどうすればよいですか?

例えば、

0 投票する
1 に答える
158 参照

c++ - OS X の FastFormat

FastFormat について少し読んだ後、OS X 10.8 を実行している Macbook Pro にダウンロードしてインストールすることにしました。FastFormat のビルドに成功し、パフォーマンス テストを実行しました。次に、それが機能するかどうかを確認するための小さなテストを作成しました。

g++-4.7 でコンパイルすると (そしてすべてのインクルード パスが正しいことを確認してから)、PlatformSTL から以下のようなコンパイル エラーが発生しました。

unixこれらのエラーを手動で定義して抑制しようとしましたPLATFORMSTL_OS_IS_UNIXが、次のリンカー エラーが表示されます。

FastFormat は OS X でサポートされていますか? サポートされている場合、何が間違っていますか?