我在为下面的代码创建暂停操纵器时遇到问题。“m”是一个以摩西码打印给定数字的对象。这对我有用,但我不知道如何为它制作一个操纵器。你能帮我解决这个问题吗?
long x = 0x2A6B5B5A;
double y = 8.23786789;
m<< x << pause << y ;
我在为下面的代码创建暂停操纵器时遇到问题。“m”是一个以摩西码打印给定数字的对象。这对我有用,但我不知道如何为它制作一个操纵器。你能帮我解决这个问题吗?
long x = 0x2A6B5B5A;
double y = 8.23786789;
m<< x << pause << y ;
目前尚不清楚您的代码应该做什么。但是,您所需要的只是:
struct pause_t {};
std::ostream& operator<<(std::ostream& out, const pause_t& p) {
// put code here
return out;
};
将执行您喜欢发生的任何事情的代码代替//put code here
,然后像这样使用它:
pause_t pause;
std::cout << 42 << pause << 42;
如果m
在您的示例中不是,std::ostream
那么您只需要<<
相应地调整上述过载即可。
PS:上面严格来说不是io操纵器。io 操纵器通常实现为带有ostream
as 参数的函数,并且对此类函数std::ostream
具有重载。<<
但是,在您的情况下,这种区别可能并不重要。