如何为多个流操作创建别名
How to create an alias for multiple stream operations?
是否有一种方法可以为c++ 98中的以下行创建一个速记别名?
std::precision(3) << std::fixed
然后按如下方式使用别名:
std::cout << alias << 3.1415926 << std::endl;
标准的方法可能是创建一个自定义操纵符:
std::ios_base& alias(std::ios_base& str) {
str.precision(3);
return std::fixed(str);
}
:
std::cout << alias << 3.16464;
参见过载(9)of operator<<
:
basic_ostream& operator<<(std::ios_base& (*func)(std::ios_base&))
如果你想指定参数,你需要一个中间结构:
struct alias_t {
int n;
};
alias_t setalias(int n) { return {n}; }
template <class CharT, class Traits>
std::basic_ostream<CharT, Traits>&
operator<<(std::basic_ostream<CharT, Traits>& out, const alias_t& alias) {
return out << std::fixed << std::setprecision(alias.n);
}
// Or if you do not care about genericity:
std::ostream& operator<<(std::ostream& out, const alias_t& alias) {
return out << std::fixed << std::setprecision(alias.n);
}
:
std::cout << setalias(6) << 3.16464;
相关文章:
- 如果普通默认构造函数不执行任何操作,为什么我们不能使用 malloc 创建平凡可构造的对象?
- 使用CLANG内联程序集创建C++预增量操作
- 在c++中从包含新操作的python中创建的pb图创建图
- 调用函数来创建 WinAPI 按钮不会执行任何操作
- 在张量流中创建新操作时指定形状句柄的形状(输出张量的秩问题)
- 访问新创建的操作时出现问题
- 需要帮助创建一个休眠条件的循环,当满足条件时,它会停止,直到下一个操作
- 如果不在派生类实现中执行此操作,"basic_streambuf"是否会创建自己的获取/放置区域?
- 如何在 cocos2d-x 中创建自定义操作
- 如何创建辅助数据结构来跟踪 c++ 中 decrease_key 操作的堆索引
- 通过创建循环简化一些重复操作的代码
- 如何在C++中创建一个网格,这将允许我将每个索引设置为一个向量,以便以后操作该向量,然后绘制它
- 如何创建不执行任何操作的 #define
- 如何在单个自定义操作项目中创建多个C 自定义操作
- 此对象创建期间发生哪些复制/分配操作
- 如何在 C++ 上使用互操作创建 Excel 文件
- 是否需要为C/C++中的文件I/O操作创建自己的缓冲区
- 如何为多个流操作创建别名
- 用位操作创建字符的问题
- 为数据密集型操作创建日志