Библиотека FastFormat работает следующим образом:
string example;
fastformat::fmt(example, "I am asking {0} question on {1}", 1, "stackoverflow");
Она также заявляет о 100% -ной безопасности типов.Я могу понять, как другие библиотеки, такие как boost::format
, достигают этого путем перегрузки operator%
, что я тоже довольно часто делаю со своим кодом.
Но если бы я мог вместо этого использовать запятую, было бы менее удивительнодругие программисты.Мне действительно любопытно узнать, как я могу гарантировать безопасность типов без уловки перегрузки оператора по шаблону.
Помимо примечания: в случае, если вам интересно, что такое «уловка перегрузки оператора по шаблону», это то, как повысить:: формат работы (в основном):
struct Test
{
template<class T>
Test& operator%(const T& what) { cout << what << "\n" /* Example */; return *this; }
};
Test() % 5 % "abc";