私の名前空間には、ns
STL コンテナーを印刷するのに役立つ関数があります。例えば:
template <typename T>
std::ostream& operator<<(std::ostream& stream, const std::set<T>& set)
{
stream << "{";
bool first = true;
for (const T& item : set)
{
if (!first)
stream << ", ";
else
first = false;
stream << item;
}
stream << "}";
return stream;
}
operator <<
これは、直接印刷するのに最適です。
std::set<std::string> x = { "1", "2", "3", "4" };
std::cout << x << std::endl;
ただし、使用boost::format
は不可能です。
std::set<std::string> x = { "1", "2", "3", "4" };
boost::format("%1%") % x;
問題はかなり明らかです。Boost は、カスタムを使用operator <<
して名前空間とは関係のない型を出力することを望んでいるとは考えていません。using
に宣言を追加する以外に、私の を探すboost/format/feed_args.hpp
便利な方法はありますか?boost::format
operator <<