Console Library 8.0.0
A header-only library that makes C++ simple
Loading...
Searching...
No Matches
console::BasicOutput< CharT, Traits > Class Template Reference

灵活的输出控制类,支持链式调用和多种参数。 More...

#include <output.h>

Public Member Functions

 BasicOutput ()
 默认构造,输出到 std::cout,分隔符为空格,结尾为换行,并刷新。
 BasicOutput (std::basic_ostream< CharT, Traits > &o, const string_type &s, const string_type &e, bool isF)
 自定义构造。
BasicOutput & operator() ()
 无参数调用:仅输出结尾符(如换行)。
template<class T>
BasicOutput & operator() (const T &t)
 单参数调用:输出该参数后加结尾符。
template<class T, class... Args>
BasicOutput & operator() (const T &t, const Args &...args)
 多参数调用:依次输出每个参数,参数之间插入分隔符,最后加结尾符。
template<typename... Args>
BasicOutput & fmt (const std::basic_string< CharT, Traits > &format_str, const Args &...args)
template<typename... Args>
BasicOutput & fmt (const CharT *format_str, const Args &...args)
template<typename... Args>
BasicOutput< CharT, Traits > & fmt (const std::basic_string< CharT, Traits > &format_str, const Args &...args)
 格式化字符串。
template<typename... Args>
BasicOutput< CharT, Traits > & fmt (const CharT *format_str, const Args &...args)
 格式化字符串。

Private Types

using string_type = std::basic_string<CharT, Traits>

Private Attributes

std::basic_ostream< CharT, Traits > & os
 输出目标流
string_type sep
 多个参数之间的分隔符
string_type end
 结尾符(通常是换行符)
bool isFlush
 输出后是否立即刷新

Detailed Description

template<class CharT = char, class Traits = std::char_traits<CharT>>
class console::BasicOutput< CharT, Traits >

灵活的输出控制类,支持链式调用和多种参数。

Template Parameters
CharT字符类型。
Traits字符特征类型。

该类允许用户指定分隔符、结尾符和是否立即刷新,并提供 operator() 重载 来接收任意数量的参数进行格式化输出。 默认全局实例 Output 的行为类似于 Python 的 print 函数。

使用示例:

print("Hello", "world"); // 输出 "Hello world\n" 并刷新
print(); // 只输出换行
BasicOutput err(std::cerr, "", "\n", true);
err("Error:", code); // 输出到 stderr,无分隔符
BasicOutput()
默认构造,输出到 std::cout,分隔符为空格,结尾为换行,并刷新。
Definition output.h:432
static BasicOutput & print
全局输出对象,模仿 Python 的 print 函数。
Definition output.h:521

Member Typedef Documentation

◆ string_type

template<class CharT = char, class Traits = std::char_traits<CharT>>
using console::BasicOutput< CharT, Traits >::string_type = std::basic_string<CharT, Traits>
private

Constructor & Destructor Documentation

◆ BasicOutput() [1/2]

template<class CharT = char, class Traits = std::char_traits<CharT>>
console::BasicOutput< CharT, Traits >::BasicOutput ( )
inline

默认构造,输出到 std::cout,分隔符为空格,结尾为换行,并刷新。

◆ BasicOutput() [2/2]

template<class CharT = char, class Traits = std::char_traits<CharT>>
console::BasicOutput< CharT, Traits >::BasicOutput ( std::basic_ostream< CharT, Traits > & o,
const string_type & s,
const string_type & e,
bool isF )
inline

自定义构造。

Parameters
o输出流。
s参数之间的分隔符。
e结尾符。
isF输出后是否刷新。

Member Function Documentation

◆ fmt() [1/4]

template<class CharT = char, class Traits = std::char_traits<CharT>>
template<typename... Args>
BasicOutput & console::BasicOutput< CharT, Traits >::fmt ( const CharT * format_str,
const Args &... args )

◆ fmt() [2/4]

template<class CharT = char, class Traits = std::char_traits<CharT>>
template<typename... Args>
BasicOutput< CharT, Traits > & console::BasicOutput< CharT, Traits >::fmt ( const CharT * format_str,
const Args &... args )

格式化字符串。

Template Parameters
Args参数类型。
Parameters
format_str格式字符串。
args要格式化的参数。
Returns
BasicOutput 格式化后的输出对象。
Exceptions
BadFormat格式错误时抛出。

◆ fmt() [3/4]

template<class CharT = char, class Traits = std::char_traits<CharT>>
template<typename... Args>
BasicOutput & console::BasicOutput< CharT, Traits >::fmt ( const std::basic_string< CharT, Traits > & format_str,
const Args &... args )

◆ fmt() [4/4]

template<class CharT = char, class Traits = std::char_traits<CharT>>
template<typename... Args>
BasicOutput< CharT, Traits > & console::BasicOutput< CharT, Traits >::fmt ( const std::basic_string< CharT, Traits > & format_str,
const Args &... args )

格式化字符串。

Template Parameters
Args参数类型。
Parameters
format_str格式字符串。
args要格式化的参数。
Returns
BasicOutput 格式化后的输出对象。
Exceptions
BadFormat格式错误时抛出。

◆ operator()() [1/3]

template<class CharT = char, class Traits = std::char_traits<CharT>>
BasicOutput & console::BasicOutput< CharT, Traits >::operator() ( )
inline

无参数调用:仅输出结尾符(如换行)。

Returns
BasicOutput& 当前对象引用,支持链式调用。

◆ operator()() [2/3]

template<class CharT = char, class Traits = std::char_traits<CharT>>
template<class T>
BasicOutput & console::BasicOutput< CharT, Traits >::operator() ( const T & t)
inline

单参数调用:输出该参数后加结尾符。

Template Parameters
T参数类型(必须支持 operator<<)。
Parameters
t要输出的对象。
Returns
BasicOutput& 当前对象引用。

◆ operator()() [3/3]

template<class CharT = char, class Traits = std::char_traits<CharT>>
template<class T, class... Args>
BasicOutput & console::BasicOutput< CharT, Traits >::operator() ( const T & t,
const Args &... args )
inline

多参数调用:依次输出每个参数,参数之间插入分隔符,最后加结尾符。

Template Parameters
T第一个参数类型。
Args其余参数类型包。
Parameters
t第一个参数。
args其余参数。
Returns
BasicOutput& 当前对象引用。

Member Data Documentation

◆ end

template<class CharT = char, class Traits = std::char_traits<CharT>>
string_type console::BasicOutput< CharT, Traits >::end
private

结尾符(通常是换行符)

◆ isFlush

template<class CharT = char, class Traits = std::char_traits<CharT>>
bool console::BasicOutput< CharT, Traits >::isFlush
private

输出后是否立即刷新

◆ os

template<class CharT = char, class Traits = std::char_traits<CharT>>
std::basic_ostream<CharT, Traits>& console::BasicOutput< CharT, Traits >::os
private

输出目标流

◆ sep

template<class CharT = char, class Traits = std::char_traits<CharT>>
string_type console::BasicOutput< CharT, Traits >::sep
private

多个参数之间的分隔符


The documentation for this class was generated from the following files: