// file : bbot/types.hxx -*- C++ -*- // license : MIT; see accompanying LICENSE file #ifndef BBOT_TYPES_HXX #define BBOT_TYPES_HXX #include #include #include // unique_ptr, shared_ptr #include // pair #include // size_t, nullptr_t #include // uint{8,16,32,64}_t #include #include #include // function, reference_wrapper #include // ios_base::failure #include // exception #include // logic_error, invalid_argument, runtime_error #include #include #include #include #include #include #include #include namespace bbot { // Commonly-used types. // using std::uint8_t; using std::uint16_t; using std::uint32_t; using std::uint64_t; using std::size_t; using std::nullptr_t; using std::pair; using std::string; using std::function; using std::reference_wrapper; using std::unique_ptr; using std::shared_ptr; using std::weak_ptr; using std::vector; using strings = vector; using cstrings = vector; using std::istream; using std::ostream; // Exceptions. While is included, there is no using for // std::exception -- use qualified. // using std::logic_error; using std::invalid_argument; using std::runtime_error; using std::system_error; using std::generic_category; using io_error = std::ios_base::failure; // // using butl::optional; using butl::nullopt; // // using butl::auto_fd; using butl::ifdstream; using butl::ofdstream; // // using olz4stream = butl::lz4::ostream; using ilz4stream = butl::lz4::istream; // // using butl::vector_view; // // using butl::small_vector; // // using butl::path; using butl::dir_path; using butl::basic_path; using butl::invalid_path; using paths = std::vector; using dir_paths = std::vector; // // using butl::standard_version; } // In order to be found (via ADL) these have to be either in std:: or in // butl::. The latter is bad idea since libbutl includes the default // implementation. // namespace std { // Custom path printing (canonicalized, with trailing slash for directories). // inline ostream& operator<< (ostream& os, const ::butl::path& p) { string r (p.representation ()); ::butl::path::traits_type::canonicalize (r); return os << r; } } #endif // BBOT_TYPES_HXX