Update README after extending functionality!
- Public interface
- Open a file, close in the destructor
-
safe_open -> std::optional
- Output
- Variadic
io::print
-
io::println
-
::print
and::println
-
io::flush
and::flush
- Variadic
- Input
- Unsafe
-
io::input<T = std::string, Ts...>(String auto prompt = "")
- Variadic
io::read<Ts...>() -> std::tuple<Ts...>
-
io::read<T> -> T
-
io::readln -> std::string
-
::read<Ts...>
-
::readln
-
- Safe
-
io::safe_input
-
io::safe_read<Ts...>() -> std::optional<std::tuple<Ts...>>
-
io::safe_read<T> -> std::optional<T>
-
io::safe_readln -> std::optional<std::string>
-
::safe_read<Ts...>
-
::safe_readln
-
- Echoless read from
stdin
- [?] Public
skip_ws
(for user-defined types) - Verify
char
/string,else nullopt
(for user-defined types) - [?] Logging errors to
stderr
- [?]
read_until(pred)
- [?]
maybe_read(pred) -> std::optional
- Unsafe
- Iterators
-
write_iter
(working title) -
read_iter
(working title) - Verify with
std::ranges::{input_range, output_range}
-
- Concepts
-
Writable
-
Readable
-
-
write
-
char
-
bool
- Strings
-
char const*
-
std::string
-
std::string_view
-
- Integral types
-
std::integral
-
dec
wrapper (forchar
) -
bin
wrapper -> 0b00... -
oct
wrapper -> 0o00... -
hex
wrapper -> 0x00...
-
- Floating types
- Pointers
-
T*
-
std::unique_ptr
-
std::shared_ptr
-
- Sequence containers
-
T[]
-
std::array
-
std::vector
-
std::deque
-
std::forward_list
-
std::list
-
- Sets
-
std::set
-
std::multiset
-
std::unordered_set
-
std::unordered_multiset
-
- Maps
-
std::map
-
std::multimap
-
std::unordered_map
-
std::unordered_multimap
-
- Other STL types
-
std::optional
-
std::tuple
-> (a0, a1)
-
- User-defined types
-
-
impl::read
- Entire file
-
char
-
bool
-
std::string
- Integral types
-
std::integral
-
dec
wrapper (forchar
) -
bin
wrapper -> 0b00... -
oct
wrapper -> 0o00... -
hex
wrapper -> 0x00...
-
- Floating types
- Pointers (
T*
) - Sequence containers
-
std::vector
-
std::deque
-
std::forward_list
-
std::list
-
- Sets
-
std::set
-
std::multiset
-
std::unordered_set
-
std::unordered_multiset
-
- Maps
-
std::map
-
std::multimap
-
std::unordered_map
-
std::unordered_multimap
-
- Other STL types
-
std::optional
-
std::tuple
-
- User-defined types
- Improvements
- Modularize cleario when GCC gets module support
- Print quotation marks around strings inside containers
- Read quotation marks around strings inside containers
- Add
noexcept
specifiers for performance - [?] Use {fmt} for printing (compile-time format strings > variadic
print
) -
print
/write
to take simple types by value (concept conflicts?) - README warning about using echoless with multithreading (stream may stay echoless)
- Make
read
methodsconst
- Investigate MSVC deprecation of
fopen
(check other functions?) - Disambiguate
read
andimpl::read
(likeprint
andwrite
)? - Fix
write<optional<tuple>>
etc. (declaration order)