FastFormatライブラリは次のように機能します。
string example;
fastformat::fmt(example, "I am asking {0} question on {1}", 1, "stackoverflow");
また、「100%型安全性」も主張しています。boost::format
オーバーロードによってそれを達成するなど、他のライブラリがどのようにそれを達成するかを理解できoperator%
ます。これは、私のコードでもかなり頻繁に行うことです。
しかし、代わりにコンマを使用できれば、他のプログラマーにとってはそれほど驚くことではありません。テンプレート化された演算子のオーバーロードトリックなしで型の安全性を保証する方法を知りたいのですが。
余談ですが、「テンプレート化された演算子のオーバーロードのトリック」とは何か疑問に思っている場合は、次のようになります。boost :: formatの動作(ほとんど):
struct Test
{
template<class T>
Test& operator%(const T& what) { cout << what << "\n" /* Example */; return *this; }
};
Test() % 5 % "abc";