operator<<()
我的C++17 折叠类有 以下重载:
template <typename... Args>
ostream& operator <<(Args&&... args)
{
//Currently:
return (m_osCout << ... << args);
//What I need:
IF ANY OF THE parameters in args "was" of type, say TSeek,
which can be a manipulator function etc, then AFTER finishing
with the parameter pack, I would like to do some further operation
, for instance, restore the state of m_osCount
}
如上所述,我需要什么吗?任何设置一些方向的部分回应将不胜感激......
尽管我提出了这个问题,就好像我在要求一个自动流标志恢复器一样,但请注意,我追求的是通用解决方案,而不是特别恢复std::cout
或 o/istream 对象恢复。在实践中,我的类是一种接受自定义类型作为运算符参数的数学对象,其中一些需要 ostream 的类似操纵器的函数,但要求用户在开始下一次此类使用之前提供一些最终操作数通常非常不方便。
我想到的一个想法是,TSeek
只要在args...
列表中提供了一种新的智能类型的不同类型的临时对象,那么在将最后一个参数转发给它之后,它将自动销毁,这真的是我想做我的最后任务!
我应该这样进行还是...?