ELC in dev
ELC-lang
载入中...
搜索中...
未找到
elc::defs::stream_n 命名空间参考

命名空间

namespace  base_fstream_n
 
namespace  base_streams_impl_n
 

struct  base_iostream_t
 
struct  base_istream_t
 
struct  base_not_unreadable_istream_t
 
struct  base_ostream_t
 
struct  base_stream_t
 
struct  data_iostream_t
 
struct  data_istream_t
 
struct  data_not_unreadable_istream_t
 
struct  data_ostream_t
 
struct  data_stream_t
 
struct  endline_t
 
struct  flush_t
 
struct  memory_stream
 
struct  noexcept_data_iostream_t
 
struct  noexcept_data_istream_t
 
struct  noexcept_data_ostream_t
 
struct  noexcept_data_stream_t
 
struct  noexcept_iostream_t
 
struct  noexcept_istream_t
 
struct  noexcept_not_unreadable_data_istream_t
 
struct  noexcept_not_unreadable_istream_t
 
struct  noexcept_not_unreadable_text_istream_t
 
struct  noexcept_ostream_t
 
struct  noexcept_stream_t
 
struct  noexcept_text_iostream_t
 
struct  noexcept_text_istream_t
 
struct  noexcept_text_ostream_t
 
struct  noexcept_text_stream_t
 
struct  null_data_stream
 
struct  null_text_stream
 
struct  std_istream_wrap
 
struct  std_ostream_wrap
 
struct  text_iostream_t
 
struct  text_istream_t
 
struct  text_not_unreadable_istream_t
 
struct  text_ostream_t
 
struct  text_stream_t
 
struct  unreadable_wrap
 

概念

concept  stream_class
 
concept  not_unreadable_istream_class
 
concept  istream_class
 
concept  ostream_class
 
concept  iostream_class
 
concept  noexcept_stream_class
 
concept  noexcept_not_unreadable_istream_class
 
concept  noexcept_istream_class
 
concept  noexcept_ostream_class
 
concept  noexcept_iostream_class
 
concept  text_stream_class
 
concept  text_not_unreadable_istream_class
 
concept  text_istream_class
 
concept  text_ostream_class
 
concept  text_iostream_class
 
concept  text_stream
 
concept  text_not_unreadable_istream
 
concept  text_istream
 
concept  text_ostream
 
concept  text_iostream
 
concept  noexcept_text_stream_class
 
concept  noexcept_not_unreadable_text_istream_class
 
concept  noexcept_text_istream_class
 
concept  noexcept_text_ostream_class
 
concept  noexcept_text_iostream_class
 
concept  noexcept_text_not_unreadable_istream
 
concept  noexcept_text_istream
 
concept  noexcept_text_ostream
 
concept  noexcept_text_iostream
 
concept  data_stream_class
 
concept  data_not_unreadable_istream_class
 
concept  data_istream_class
 
concept  data_ostream_class
 
concept  data_iostream_class
 
concept  noexcept_data_stream_class
 
concept  noexcept_not_unreadable_data_istream_class
 
concept  noexcept_data_istream_class
 
concept  noexcept_data_ostream_class
 
concept  noexcept_data_iostream_class
 

类型定义

typedef unreadable_wrap< stream_T > this_t
 
typedef stream_T::data_type data_type
 

枚举

enum class  seek_type { beg , end , cur }
 

函数

template<text_ostream_class text_ostream_T, class char_T >
requires (type_info<char_T> == type_info<typename remove_cvref<text_ostream_T>::char_type>)
decltype(autooperator<< (text_ostream_T &&stream, const char_T ch) noexcept(noexcept_text_ostream_class< text_ostream_T >)
 
template<text_ostream_class text_ostream_T, class char_T >
requires (type_info<char_T> == type_info<typename remove_cvref<text_ostream_T>::char_type>)
decltype(autooperator<< (text_ostream_T &&stream, array_like_view_t< const char_T >str) noexcept(noexcept_text_ostream_class< text_ostream_T >)
 
template<text_ostream_class text_ostream_T, class char_T >
requires (type_info<char_T> == type_info<typename remove_cvref<text_ostream_T>::char_type>)
decltype(autooperator<< (text_ostream_T &&stream, const char_T *str) noexcept(noexcept_text_ostream_class< text_ostream_T >)
 
template<text_istream_class text_istream_T, class char_T >
requires (type_info<char_T> == type_info<typename remove_cvref<text_istream_T>::char_type>)
decltype(autooperator>> (text_istream_T &stream, char_T &ch) noexcept(noexcept_text_istream_class< text_istream_T >)
 
template<data_ostream_class data_ostream_T, class T >
requires ::std::is_trivially_copyable_v< T > decltype(autooperator<< (data_ostream_T &&stream, const T &data) noexcept(noexcept_data_ostream_class< data_ostream_T >)
 
template<data_ostream_class data_ostream_T, class T , size_t N>
requires ::std::is_trivially_copyable_v< T > decltype(autooperator<< (data_ostream_T &&stream, const T(&data)[N]) noexcept(noexcept_data_ostream_class< data_ostream_T >)
 
template<data_istream_class data_istream_T, class T >
requires ::std::is_trivially_copyable_v< T > decltype(autooperator>> (data_istream_T &&stream, T &data) noexcept(noexcept_data_istream_class< data_istream_T >)
 
template<data_istream_class data_istream_T, class T , size_t N>
requires ::std::is_trivially_copyable_v< T > decltype(autooperator>> (data_istream_T &&stream, T(&data)[N]) noexcept(noexcept_data_istream_class< data_istream_T >)
 
template<class callable_T , ostream_class stream_T>
requires (invoke<callable_T>.able<stream_T>)
decltype(autooperator<< (stream_T &&stream, callable_T &&callable) noexcept(invoke< callable_T >.nothrow< stream_T >)
 
template<class callable_T , istream_class stream_T>
requires (invoke<callable_T>.able<stream_T>)
decltype(autooperator>> (stream_T &&stream, callable_T &&callable) noexcept(invoke< callable_T >.nothrow< stream_T >)
 
template<text_ostream_class text_ostream_T, class T >
decltype(autobase_array_output (text_ostream_T &&stream, const T *array, size_t size) noexcept(noexcept_text_ostream_class< text_ostream_T >)
 
template<text_ostream_class text_ostream_T, class T >
decltype(autooperator<< (text_ostream_T &&stream, const array_t< T > &array) noexcept(noexcept_text_ostream_class< text_ostream_T >)
 
template<text_ostream_class text_ostream_T, class T , size_t N>
requires (type_info<typename remove_cvref<text_ostream_T>::char_type> != type_info<T>)
decltype(autooperator<< (text_ostream_T &&stream, const T(&array)[N]) noexcept(noexcept_text_ostream_class< text_ostream_T >)
 
virtual void abstract_method_unget_this () noexcept(noexcept((instance_struct< this_t >::abstract_method_unget_this()))) override
 
virtual void_abstract_method_copy_get_this () noexcept(noexcept((instance_struct< this_t >::_abstract_method_copy_get_this()))) override
 
virtual void_abstract_method_get_resize_this (size_t size) noexcept(noexcept((instance_struct< this_t >::instance_struct< this_t >::_abstract_method_get_resize_this(size)))) override
 
virtual void_abstract_method_get_forward_resize_this (size_t size) noexcept(noexcept((instance_struct< this_t >::_abstract_method_get_forward_resize_this(size)))) override
 
virtual size_t abstract_method_get_size_of_get_for_this () noexcept override
 
virtual size_t base_read_impl_for_wrapper (data_type *data, size_t size) noexcept(noexcept((stream_T::read(nullptr, 0))))
 
virtual bool base_waitting_for_data_impl_for_wrapper () noexcept(noexcept((stream_T::waitting_for_data())))
 
virtual size_t read (data_type *data, size_t size) noexcept(noexcept((stream_T::read(nullptr, 0)))) override
 
virtual void unread (const data_type *data, size_t size) noexcept override
 
virtual bool is_end () noexcept(noexcept((stream_T::is_end()))) override
 
virtual bool waitting_for_data () noexcept(noexcept((stream_T::waitting_for_data()))) override
 
template<text_istream_class text_istream_T>
auto getline (text_istream_T &is) noexcept(noexcept_text_istream_class< text_istream_T >)
 
template<text_ostream stream_T>
decltype(autooperator<< (stream_T &&stream, const type_name_t &name) noexcept(noexcept_text_ostream< stream_T >)
 
template<text_ostream stream_T>
decltype(autooperator<< (stream_T &&stream, const base_type_info_t &info) noexcept(noexcept_text_ostream< stream_T >)
 
template<text_ostream stream_T>
decltype(autooperator<< (stream_T &&stream, const ::std::type_info &info) noexcept(noexcept_text_ostream< stream_T >)
 
template<text_ostream stream_T>
decltype(autooperator<< (stream_T &&stream, const function_name_t &name) noexcept(noexcept_text_ostream< stream_T >)
 

变量

constexpr struct elc::defs::stream_n::flush_t flush
 
constexpr struct elc::defs::stream_n::endline_t endline
 
autoout =base_streams_impl_n::out_impl
 
autoerr =base_streams_impl_n::err_impl
 
autoin =base_streams_impl_n::in_impl
 

类型定义说明

◆ data_type

在文件 all_defs.cpp29385 行定义.

◆ this_t

枚举类型说明

◆ seek_type

函数说明

◆ _abstract_method_copy_get_this()

virtual void * elc::defs::stream_n::_abstract_method_copy_get_this ( )
overrideprotectedvirtualnoexcept

在文件 all_defs.cpp29382 行定义.

◆ _abstract_method_get_forward_resize_this()

virtual void * elc::defs::stream_n::_abstract_method_get_forward_resize_this ( size_t  size)
overrideprotectedvirtualnoexcept

在文件 all_defs.cpp29382 行定义.

◆ _abstract_method_get_resize_this()

virtual void * elc::defs::stream_n::_abstract_method_get_resize_this ( size_t  size)
overrideprotectedvirtualnoexcept

在文件 all_defs.cpp29382 行定义.

◆ abstract_method_get_size_of_get_for_this()

virtual size_t elc::defs::stream_n::abstract_method_get_size_of_get_for_this ( )
overrideprotectedvirtualnoexcept

在文件 all_defs.cpp29382 行定义.

◆ abstract_method_unget_this()

virtual void elc::defs::stream_n::abstract_method_unget_this ( )
overrideprotectedvirtualnoexcept

在文件 all_defs.cpp29382 行定义.

◆ base_array_output()

template<text_ostream_class text_ostream_T, class T >
decltype(auto) elc::defs::stream_n::base_array_output ( text_ostream_T &&  stream,
const T *  array,
size_t  size 
)
noexcept

在文件 all_defs.cpp29307 行定义.

29307 {
29308 typedef typename remove_cvref<text_ostream_T>::char_type char_T;
29309 stream << char_T{'['};
29310 for(auto i=array;i!=array+size;++i){
29311 if(i!=array)
29312 stream << char_T{','};
29313 stream << *i;
29314 }
29315 return stream << char_T{']'};
29316}
::std::remove_cvref_t< T > remove_cvref
Definition all_defs.cpp:835
函数调用图:
这是这个函数的调用关系图:

◆ base_read_impl_for_wrapper()

virtual size_t elc::defs::stream_n::base_read_impl_for_wrapper ( data_type data,
size_t  size 
)
protectedvirtualnoexcept

在文件 all_defs.cpp29392 行定义.

29392 {
29393 return stream_T::read(data,size);
29394 }
函数调用图:
这是这个函数的调用关系图:

◆ base_waitting_for_data_impl_for_wrapper()

virtual bool elc::defs::stream_n::base_waitting_for_data_impl_for_wrapper ( )
protectedvirtualnoexcept

在文件 all_defs.cpp29395 行定义.

29395 {
29396 return stream_T::waitting_for_data();
29397 }
函数调用图:
这是这个函数的调用关系图:

◆ getline()

template<text_istream_class text_istream_T>
auto elc::defs::stream_n::getline ( text_istream_T is)
inlinenoexcept

在文件 all_defs.cpp39690 行定义.

39690 {
39691 typedef typename remove_cvref<text_istream_T>::char_type char_T;
39693 return getline(is,str);
39694 }
auto getline(text_istream_T &is) noexcept(noexcept_text_istream_class< text_istream_T >)
函数调用图:
这是这个函数的调用关系图:

◆ is_end()

virtual bool elc::defs::stream_n::is_end ( )
overridevirtualnoexcept

在文件 all_defs.cpp29424 行定义.

29424 {
29425 return _reading_pos==_using_size && stream_T::is_end();
29426 }
函数调用图:
这是这个函数的调用关系图:

◆ operator<<() [1/12]

template<data_ostream_class data_ostream_T, class T >
requires ::std::is_trivially_copyable_v< T > decltype(auto) elc::defs::stream_n::operator<< ( data_ostream_T &&  stream,
const T &  data 
)
noexcept

在文件 all_defs.cpp29239 行定义.

29239 {
29240 stream.write(&data,1);
29241 return stream;
29242}

◆ operator<<() [2/12]

template<data_ostream_class data_ostream_T, class T , size_t N>
requires ::std::is_trivially_copyable_v< T > decltype(auto) elc::defs::stream_n::operator<< ( data_ostream_T &&  stream,
const T(&)  data[N] 
)
noexcept

在文件 all_defs.cpp29244 行定义.

29244 {
29245 stream.write(data,N);
29246 return stream;
29247}

◆ operator<<() [3/12]

template<class callable_T , ostream_class stream_T>
requires (invoke<callable_T>.able<stream_T>)
decltype(auto) elc::defs::stream_n::operator<< ( stream_T &&  stream,
callable_T &&  callable 
)
noexcept

在文件 all_defs.cpp29297 行定义.

29297 {
29298 return callable(stream);
29299}
函数调用图:

◆ operator<<() [4/12]

template<text_ostream stream_T>
decltype(auto) elc::defs::stream_n::operator<< ( stream_T &&  stream,
const ::std::type_info &  info 
)
noexcept

在文件 all_defs.cpp41952 行定义.

41952 {
41953 return stream << type_name_t{info.name()};
41954 }

◆ operator<<() [5/12]

template<text_ostream stream_T>
decltype(auto) elc::defs::stream_n::operator<< ( stream_T &&  stream,
const base_type_info_t info 
)
noexcept

在文件 all_defs.cpp41947 行定义.

41947 {
41948 return stream << info.get_name();
41949 }
type_name_t get_name() const noexcept
函数调用图:

◆ operator<<() [6/12]

template<text_ostream stream_T>
decltype(auto) elc::defs::stream_n::operator<< ( stream_T &&  stream,
const function_name_t name 
)
noexcept

在文件 all_defs.cpp41958 行定义.

41958 {
41959 return stream << to_char_t_str(name);
41960 }
string_t< char_t > to_char_t_str(string_view_t< char > a) noexcept
函数调用图:

◆ operator<<() [7/12]

template<text_ostream stream_T>
decltype(auto) elc::defs::stream_n::operator<< ( stream_T &&  stream,
const type_name_t name 
)
noexcept

在文件 all_defs.cpp41942 行定义.

41942 {
41943 return stream << to_char_t_str(name);
41944 }
函数调用图:

◆ operator<<() [8/12]

template<text_ostream_class text_ostream_T, class char_T >
requires (type_info<char_T> == type_info<typename remove_cvref<text_ostream_T>::char_type>)
decltype(auto) elc::defs::stream_n::operator<< ( text_ostream_T &&  stream,
array_like_view_t< const char_T str 
)
noexcept

在文件 all_defs.cpp29220 行定义.

29220 {
29221 stream.write(str.data(),str.size());
29222 return stream;
29223}
constexpr size_t size() const noexcept
constexpr const_iterator data() const noexcept
函数调用图:

◆ operator<<() [9/12]

template<text_ostream_class text_ostream_T, class T >
decltype(auto) elc::defs::stream_n::operator<< ( text_ostream_T &&  stream,
const array_t< T > &  array 
)
noexcept

在文件 all_defs.cpp29319 行定义.

29319 {
29320 return base_array_output(stream,array.data(),array.size());
29321}
decltype(auto) base_array_output(text_ostream_T &&stream, const T *array, size_t size) noexcept(noexcept_text_ostream_class< text_ostream_T >)
函数调用图:

◆ operator<<() [10/12]

template<text_ostream_class text_ostream_T, class char_T >
requires (type_info<char_T> == type_info<typename remove_cvref<text_ostream_T>::char_type>)
decltype(auto) elc::defs::stream_n::operator<< ( text_ostream_T &&  stream,
const char_T str 
)
noexcept

在文件 all_defs.cpp29225 行定义.

29225 {
29226 return stream << array_end_by_zero_t<const char_T>{str};
29227}
函数调用图:

◆ operator<<() [11/12]

template<text_ostream_class text_ostream_T, class char_T >
requires (type_info<char_T> == type_info<typename remove_cvref<text_ostream_T>::char_type>)
decltype(auto) elc::defs::stream_n::operator<< ( text_ostream_T &&  stream,
const char_T  ch 
)
noexcept

在文件 all_defs.cpp29215 行定义.

29215 {
29216 stream.write(&ch,1);
29217 return stream;
29218}
函数调用图:
这是这个函数的调用关系图:

◆ operator<<() [12/12]

template<text_ostream_class text_ostream_T, class T , size_t N>
requires (type_info<typename remove_cvref<text_ostream_T>::char_type> != type_info<T>)
decltype(auto) elc::defs::stream_n::operator<< ( text_ostream_T &&  stream,
const T(&)  array[N] 
)
noexcept

在文件 all_defs.cpp29324 行定义.

29324 {
29325 return base_array_output(stream,array,N);
29326}
函数调用图:

◆ operator>>() [1/4]

template<data_istream_class data_istream_T, class T >
requires ::std::is_trivially_copyable_v< T > decltype(auto) elc::defs::stream_n::operator>> ( data_istream_T &&  stream,
T &  data 
)
noexcept

在文件 all_defs.cpp29250 行定义.

29250 {
29251 stream.read(&data,1);
29252 return stream;
29253}

◆ operator>>() [2/4]

template<data_istream_class data_istream_T, class T , size_t N>
requires ::std::is_trivially_copyable_v< T > decltype(auto) elc::defs::stream_n::operator>> ( data_istream_T &&  stream,
T(&)  data[N] 
)
noexcept

在文件 all_defs.cpp29255 行定义.

29255 {
29256 stream.read(data,N);
29257 return stream;
29258}

◆ operator>>() [3/4]

template<class callable_T , istream_class stream_T>
requires (invoke<callable_T>.able<stream_T>)
decltype(auto) elc::defs::stream_n::operator>> ( stream_T &&  stream,
callable_T &&  callable 
)
noexcept

在文件 all_defs.cpp29302 行定义.

29302 {
29303 return callable(stream);
29304}
函数调用图:

◆ operator>>() [4/4]

template<text_istream_class text_istream_T, class char_T >
requires (type_info<char_T> == type_info<typename remove_cvref<text_istream_T>::char_type>)
decltype(auto) elc::defs::stream_n::operator>> ( text_istream_T stream,
char_T ch 
)
noexcept

在文件 all_defs.cpp29230 行定义.

29230 {
29231 stream.read(&ch,1);
29232 return stream;
29233}
函数调用图:
这是这个函数的调用关系图:

◆ read()

virtual size_t elc::defs::stream_n::read ( data_type data,
size_t  size 
)
overridevirtualnoexcept

在文件 all_defs.cpp29399 行定义.

29399 {
29400 if(size==0)return 0;
29401 size_t aret=0;
29402 if(_reading_pos!=_using_size){
29403 const auto read_size=min(size,_using_size-_reading_pos);
29404 copy_assign[read_size](note::from(add_const(_buffer.data()+_reading_pos)),note::to(data));
29405 _reading_pos+=read_size;
29406 size-=read_size;
29407 aret+=read_size;
29408 data+=read_size;
29409 }
29410 aret+=base_read_impl_for_wrapper(data,size);
29411 return aret;
29412 }
constexpr struct elc::defs::base::min_t min
constexpr const T add_const(T a) noexcept
对值追加const
virtual size_t base_read_impl_for_wrapper(data_type *data, size_t size) noexcept(noexcept((stream_T::read(nullptr, 0))))
函数调用图:
这是这个函数的调用关系图:

◆ unread()

virtual void elc::defs::stream_n::unread ( const data_type data,
size_t  size 
)
overridevirtualnoexcept

在文件 all_defs.cpp29413 行定义.

29413 {
29414 if(size==0)return;
29415 if(_reading_pos<size){//unread size more than buffer can hold
29416 const auto more_size=size-_reading_pos;
29417 _buffer.forward_resize(more_size);
29418 _using_size+=more_size;
29419 _reading_pos+=more_size;
29420 }
29421 _reading_pos-=size;
29422 copy_assign[size](note::from(data),note::to(_buffer.data()+_reading_pos));
29423 }
函数调用图:
这是这个函数的调用关系图:

◆ waitting_for_data()

virtual bool elc::defs::stream_n::waitting_for_data ( )
overridevirtualnoexcept

在文件 all_defs.cpp29427 行定义.

29427 {
29428 return _reading_pos==_using_size && stream_T::waitting_for_data();
29429 }
函数调用图:
这是这个函数的调用关系图:

变量说明

◆ endline

constexpr struct elc::defs::stream_n::endline_t elc::defs::stream_n::endline

◆ err

auto& elc::defs::stream_n::err =base_streams_impl_n::err_impl
inline

在文件 all_defs.cpp59126 行定义.

◆ flush

constexpr struct elc::defs::stream_n::flush_t elc::defs::stream_n::flush

◆ in

auto& elc::defs::stream_n::in =base_streams_impl_n::in_impl
inline

在文件 all_defs.cpp59127 行定义.

◆ out

auto& elc::defs::stream_n::out =base_streams_impl_n::out_impl
inline

在文件 all_defs.cpp59125 行定义.