// file : bpkg/types -*- C++ -*- // copyright : Copyright (c) 2014-2016 Code Synthesis Ltd // license : MIT; see accompanying LICENSE file #ifndef BPKG_TYPES #define BPKG_TYPES #include #include #include // shared_ptr, unique_ptr #include // size_t #include // uint{8,16,32,64}_t #include #include #include #include #include namespace bpkg { // 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::string; using std::vector; using strings = vector; using cstrings = vector; using std::istream; using std::ostream; using butl::optional; using butl::nullopt; // Smart pointers // using std::unique_ptr; using std::shared_ptr; using std::weak_ptr; using odb::lazy_shared_ptr; using odb::lazy_weak_ptr; // // using butl::path; using butl::dir_path; using butl::basic_path; using butl::invalid_path; using paths = std::vector; using dir_paths = std::vector; inline ostream& operator<< (ostream& os, const path& p) {return os << p.string ();} inline ostream& operator<< (ostream& os, const dir_path& p) { const string& s (p.string ()); os << s; if (!s.empty () && !dir_path::traits::is_separator (s.back ())) os << dir_path::traits::directory_separator; return os; } } #endif // BPKG_TYPES