Skip to content

Latest commit

 

History

History
121 lines (120 loc) · 3.76 KB

TODO.md

File metadata and controls

121 lines (120 loc) · 3.76 KB

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
    • 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
    • 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 (for char)
      • 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 (for char)
      • 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 methods const
    • Investigate MSVC deprecation of fopen (check other functions?)
    • Disambiguate read and impl::read (like print and write)?
    • Fix write<optional<tuple>> etc. (declaration order)