Console Library 8.0.0
A header-only library that makes C++ simple
Loading...
Searching...
No Matches
output.h File Reference

提供 STL 容器的格式化输出和灵活的输出控制工具。 More...

#include <cstddef>
#include <iterator>
#include "../core/sfinae.h"
#include "../text/repr.h"

Go to the source code of this file.

Classes

struct  console::BasicTuplePrinter< CharT, Traits, Tuple, N >
 递归打印 tuple 的辅助模板(主模板)。 More...
struct  console::BasicTuplePrinter< CharT, Traits, Tuple, 1 >
 递归打印 tuple 的偏特化:处理单个元素。 More...
struct  console::BasicTuplePrinter< CharT, Traits, Tuple, 0 >
 递归打印 tuple 的偏特化:处理空 tuple。 More...
class  console::BasicOutput< CharT, Traits >
 灵活的输出控制类,支持链式调用和多种参数。 More...

Namespaces

namespace  console
 本库所有组件所在的顶层命名空间。

Typedefs

template<class Tuple, size_t N = std::tuple_size<Tuple>::value>
using console::TuplePrinter = BasicTuplePrinter<char, std::char_traits<char>, Tuple, N>
 BasicTuplePrinter<char> 的类型别名。
using console::Output = BasicOutput<char>
 BasicOutput<char> 的类型别名。
using console::WOutput = BasicOutput<wchar_t>
 BasicOutput<wchar_t> 的类型别名。

Functions

template<class CharT, class Traits, class StrOrCharType>
std::enable_if< is_string< typenamestd::decay< StrOrCharType >::type >::value||is_char< typenamestd::decay< StrOrCharType >::type >::value >::type console::put (std::basic_ostream< CharT, Traits > &os, StrOrCharType &&value)
template<class CharT, class Traits, class OtherType>
std::enable_if<!is_string< typenamestd::decay< OtherType >::type >::value &&!is_char< typenamestd::decay< OtherType >::type >::value >::type console::put (std::basic_ostream< CharT, Traits > &os, OtherType &&value)
 否则,调用 repr 格式化。
template<class CharT, class Traits, class Cont>
std::basic_ostream< CharT, Traits > & console::cont_print_sequence (std::basic_ostream< CharT, Traits > &os, const Cont &cont)
 输出序列容器(如 vector, list)的内容,格式为 [a, b, c]。
template<class CharT, class Traits, class Cont>
std::basic_ostream< CharT, Traits > & console::cont_print_set (std::basic_ostream< CharT, Traits > &os, const Cont &cont)
 输出集合容器(如 set, unordered_set)的内容,格式为 {a, b, c}。
template<class CharT, class Traits, class Cont>
std::basic_ostream< CharT, Traits > & console::cont_print_map (std::basic_ostream< CharT, Traits > &os, const Cont &cont)
 输出映射容器(如 map, unordered_map)的内容,格式为 {key: value, ...}。
template<class CharT, class Traits, class T>
std::basic_ostream< CharT, Traits > & console::operator<< (std::basic_ostream< CharT, Traits > &, const std::vector< T > &)
 std::vector 输出声明。
template<class CharT, class Traits, class T>
std::basic_ostream< CharT, Traits > & console::operator<< (std::basic_ostream< CharT, Traits > &, const std::deque< T > &)
 std::deque 输出声明。
template<class CharT, class Traits, class T>
std::basic_ostream< CharT, Traits > & console::operator<< (std::basic_ostream< CharT, Traits > &, const std::list< T > &)
 std::list 输出声明。
template<class CharT, class Traits, class T>
std::basic_ostream< CharT, Traits > & console::operator<< (std::basic_ostream< CharT, Traits > &, const std::forward_list< T > &)
 std::forward_list 输出声明。
template<class CharT, class Traits, class T, size_t n>
std::basic_ostream< CharT, Traits > & console::operator<< (std::basic_ostream< CharT, Traits > &, const std::array< T, n > &)
 std::array 输出声明。
template<class CharT, class Traits, class T>
std::basic_ostream< CharT, Traits > & console::operator<< (std::basic_ostream< CharT, Traits > &, const std::set< T > &)
 std::set 输出声明。
template<class CharT, class Traits, class K, class V>
std::basic_ostream< CharT, Traits > & console::operator<< (std::basic_ostream< CharT, Traits > &, const std::map< K, V > &)
 std::map 输出声明。
template<class CharT, class Traits, class T>
std::basic_ostream< CharT, Traits > & console::operator<< (std::basic_ostream< CharT, Traits > &, const std::multiset< T > &)
 std::multiset 输出声明。
template<class CharT, class Traits, class K, class V>
std::basic_ostream< CharT, Traits > & console::operator<< (std::basic_ostream< CharT, Traits > &, const std::multimap< K, V > &)
 std::multimap 输出声明。
template<class CharT, class Traits, class T>
std::basic_ostream< CharT, Traits > & console::operator<< (std::basic_ostream< CharT, Traits > &, const std::unordered_set< T > &)
 std::unordered_set 输出声明。
template<class CharT, class Traits, class K, class V>
std::basic_ostream< CharT, Traits > & console::operator<< (std::basic_ostream< CharT, Traits > &, const std::unordered_map< K, V > &)
 std::unordered_map 输出声明。
template<class CharT, class Traits, class T>
std::basic_ostream< CharT, Traits > & console::operator<< (std::basic_ostream< CharT, Traits > &, const std::unordered_multiset< T > &)
 std::unordered_multiset 输出声明。
template<class CharT, class Traits, class K, class V>
std::basic_ostream< CharT, Traits > & console::operator<< (std::basic_ostream< CharT, Traits > &, const std::unordered_multimap< K, V > &)
 std::unordered_multimap 输出声明。
template<class CharT, class Traits, class T>
std::basic_ostream< CharT, Traits > & console::operator<< (std::basic_ostream< CharT, Traits > &, const std::valarray< T > &)
 std::valarray 输出声明。
template<class CharT, class Traits, class T, class U>
std::basic_ostream< CharT, Traits > & console::operator<< (std::basic_ostream< CharT, Traits > &, const std::pair< T, U > &)
 std::pair 输出声明。
template<class CharT, class Traits, class... Args>
std::basic_ostream< CharT, Traits > & console::operator<< (std::basic_ostream< CharT, Traits > &, const std::tuple< Args... > &)
 std::tuple 输出声明。
template<class T, size_t N>
std::array< T, N > console::to_array (const T(&ar)[N])
 将 C 风格数组转换为 std::array。
template<class T, size_t N>
std::vector< T > console::to_vector (const T(&ar)[N])
 将 C 风格数组转换为 std::vector。
BasicOutput & console::get_print ()
 内部单例(char)。
BasicOutput< wchar_t > & console::get_wprint ()
 内部单例(wchar_t)。

Variables

static BasicOutput & console::print = get_print()
 全局输出对象,模仿 Python 的 print 函数。
static BasicOutput< wchar_t > & console::wprint = get_wprint()
 全局宽字符输出。

Detailed Description

提供 STL 容器的格式化输出和灵活的输出控制工具。

该头文件重载了 operator<< 使得标准容器(vector, list, set, map 等)、 pair 和 tuple 可以直接输出到流。同时提供了 BasicOutput 类用于灵活控制输出格式, 以及辅助函数 to_array 和 to_vector 用于将 C 风格数组转换为 STL 容器。

Author
MrXie1109
Date
2026