C ++%运算符在这里做什么?

时间:2013-05-21 23:31:24

标签: c++ operators

我最近遇到过类似的代码:

std::string myString = "test";
boost::format fmt("%s");

fmt % myString;

第二个%运营商在这做什么?

编辑:

我理解最终结果,但我找不到如何使用%运算符的定义。

有人可以提供一个示例来解释%运算符的含义究竟在哪里吗?

2 个答案:

答案 0 :(得分:3)

  

我理解最终结果,但我找不到如何使用%运算符的定义。

operator %可能会超载。 Boost.Format does exactly that for its basic_format class

template<class T>  
basic_format&   operator%(const T& x)
    { return io::detail::feed<CharT, Tr, Alloc, const T&>(*this,x); }

只要您使用fmt % value类型为fmt的代码boost::basic_format<Ch>,就会调用此成员函数。

答案 1 :(得分:1)

%是一个重载运算符。 Click here.