vector_fwd.hpp (2450B)
1 #ifndef _C4_STD_VECTOR_FWD_HPP_ 2 #define _C4_STD_VECTOR_FWD_HPP_ 3 4 /** @file vector_fwd.hpp */ 5 6 #include <cstddef> 7 8 // forward declarations for std::vector 9 #if defined(__GLIBCXX__) || defined(__GLIBCPP__) || defined(_MSC_VER) 10 #if defined(_MSC_VER) 11 __pragma(warning(push)) 12 __pragma(warning(disable : 4643)) 13 #endif 14 namespace std { 15 template<typename> class allocator; 16 #ifdef _GLIBCXX_DEBUG 17 inline namespace __debug { 18 template<typename T, typename Alloc> class vector; 19 } 20 #else 21 template<typename T, typename Alloc> class vector; 22 #endif 23 } // namespace std 24 #if defined(_MSC_VER) 25 __pragma(warning(pop)) 26 #endif 27 #elif defined(_LIBCPP_ABI_NAMESPACE) 28 namespace std { 29 inline namespace _LIBCPP_ABI_NAMESPACE { 30 template<typename> class allocator; 31 template<typename T, typename Alloc> class vector; 32 } // namespace _LIBCPP_ABI_NAMESPACE 33 } // namespace std 34 #else 35 #error "unknown standard library" 36 #endif 37 38 #ifndef C4CORE_SINGLE_HEADER 39 #include "c4/substr_fwd.hpp" 40 #endif 41 42 namespace c4 { 43 44 template<class Alloc> c4::substr to_substr(std::vector<char, Alloc> &vec); 45 template<class Alloc> c4::csubstr to_csubstr(std::vector<char, Alloc> const& vec); 46 47 template<class Alloc> bool operator!= (c4::csubstr ss, std::vector<char, Alloc> const& s); 48 template<class Alloc> bool operator== (c4::csubstr ss, std::vector<char, Alloc> const& s); 49 template<class Alloc> bool operator>= (c4::csubstr ss, std::vector<char, Alloc> const& s); 50 template<class Alloc> bool operator> (c4::csubstr ss, std::vector<char, Alloc> const& s); 51 template<class Alloc> bool operator<= (c4::csubstr ss, std::vector<char, Alloc> const& s); 52 template<class Alloc> bool operator< (c4::csubstr ss, std::vector<char, Alloc> const& s); 53 54 template<class Alloc> bool operator!= (std::vector<char, Alloc> const& s, c4::csubstr ss); 55 template<class Alloc> bool operator== (std::vector<char, Alloc> const& s, c4::csubstr ss); 56 template<class Alloc> bool operator>= (std::vector<char, Alloc> const& s, c4::csubstr ss); 57 template<class Alloc> bool operator> (std::vector<char, Alloc> const& s, c4::csubstr ss); 58 template<class Alloc> bool operator<= (std::vector<char, Alloc> const& s, c4::csubstr ss); 59 template<class Alloc> bool operator< (std::vector<char, Alloc> const& s, c4::csubstr ss); 60 61 template<class Alloc> size_t to_chars(c4::substr buf, std::vector<char, Alloc> const& s); 62 template<class Alloc> bool from_chars(c4::csubstr buf, std::vector<char, Alloc> * s); 63 64 } // namespace c4 65 66 #endif // _C4_STD_VECTOR_FWD_HPP_