system-header-simulator-cxx.h revision 81fb50e8b120fc95dc0245b4112972d4d7cca3b5
181fb50e8b120fc95dc0245b4112972d4d7cca3b5Jordan Rose#pragma clang system_header 281fb50e8b120fc95dc0245b4112972d4d7cca3b5Jordan Rose 381fb50e8b120fc95dc0245b4112972d4d7cca3b5Jordan Rosenamespace std { 481fb50e8b120fc95dc0245b4112972d4d7cca3b5Jordan Rose template <class T1, class T2> 581fb50e8b120fc95dc0245b4112972d4d7cca3b5Jordan Rose struct pair { 681fb50e8b120fc95dc0245b4112972d4d7cca3b5Jordan Rose T1 first; 781fb50e8b120fc95dc0245b4112972d4d7cca3b5Jordan Rose T2 second; 881fb50e8b120fc95dc0245b4112972d4d7cca3b5Jordan Rose 981fb50e8b120fc95dc0245b4112972d4d7cca3b5Jordan Rose pair() : first(), second() {} 1081fb50e8b120fc95dc0245b4112972d4d7cca3b5Jordan Rose pair(const T1 &a, const T2 &b) : first(a), second(b) {} 1181fb50e8b120fc95dc0245b4112972d4d7cca3b5Jordan Rose 1281fb50e8b120fc95dc0245b4112972d4d7cca3b5Jordan Rose template<class U1, class U2> 1381fb50e8b120fc95dc0245b4112972d4d7cca3b5Jordan Rose pair(const pair<U1, U2> &other) : first(other.first), second(other.second) {} 1481fb50e8b120fc95dc0245b4112972d4d7cca3b5Jordan Rose }; 1581fb50e8b120fc95dc0245b4112972d4d7cca3b5Jordan Rose 1681fb50e8b120fc95dc0245b4112972d4d7cca3b5Jordan Rose typedef __typeof__(sizeof(int)) size_t; 1781fb50e8b120fc95dc0245b4112972d4d7cca3b5Jordan Rose 1881fb50e8b120fc95dc0245b4112972d4d7cca3b5Jordan Rose template<typename T> 1981fb50e8b120fc95dc0245b4112972d4d7cca3b5Jordan Rose class vector { 2081fb50e8b120fc95dc0245b4112972d4d7cca3b5Jordan Rose T *_start; 2181fb50e8b120fc95dc0245b4112972d4d7cca3b5Jordan Rose T *_finish; 2281fb50e8b120fc95dc0245b4112972d4d7cca3b5Jordan Rose T *_end_of_storage; 2381fb50e8b120fc95dc0245b4112972d4d7cca3b5Jordan Rose public: 2481fb50e8b120fc95dc0245b4112972d4d7cca3b5Jordan Rose vector() : _start(0), _finish(0), _end_of_storage(0) {} 2581fb50e8b120fc95dc0245b4112972d4d7cca3b5Jordan Rose ~vector(); 2681fb50e8b120fc95dc0245b4112972d4d7cca3b5Jordan Rose 2781fb50e8b120fc95dc0245b4112972d4d7cca3b5Jordan Rose size_t size() const { 2881fb50e8b120fc95dc0245b4112972d4d7cca3b5Jordan Rose return size_t(_finish - _start); 2981fb50e8b120fc95dc0245b4112972d4d7cca3b5Jordan Rose } 3081fb50e8b120fc95dc0245b4112972d4d7cca3b5Jordan Rose 3181fb50e8b120fc95dc0245b4112972d4d7cca3b5Jordan Rose void push_back(); 3281fb50e8b120fc95dc0245b4112972d4d7cca3b5Jordan Rose T pop_back(); 3381fb50e8b120fc95dc0245b4112972d4d7cca3b5Jordan Rose 3481fb50e8b120fc95dc0245b4112972d4d7cca3b5Jordan Rose T &operator[](size_t n) { 3581fb50e8b120fc95dc0245b4112972d4d7cca3b5Jordan Rose return _start[n]; 3681fb50e8b120fc95dc0245b4112972d4d7cca3b5Jordan Rose } 3781fb50e8b120fc95dc0245b4112972d4d7cca3b5Jordan Rose 3881fb50e8b120fc95dc0245b4112972d4d7cca3b5Jordan Rose const T &operator[](size_t n) const { 3981fb50e8b120fc95dc0245b4112972d4d7cca3b5Jordan Rose return _start[n]; 4081fb50e8b120fc95dc0245b4112972d4d7cca3b5Jordan Rose } 4181fb50e8b120fc95dc0245b4112972d4d7cca3b5Jordan Rose 4281fb50e8b120fc95dc0245b4112972d4d7cca3b5Jordan Rose T *begin() { return _start; } 4381fb50e8b120fc95dc0245b4112972d4d7cca3b5Jordan Rose const T *begin() const { return _start; } 4481fb50e8b120fc95dc0245b4112972d4d7cca3b5Jordan Rose 4581fb50e8b120fc95dc0245b4112972d4d7cca3b5Jordan Rose T *end() { return _finish; } 4681fb50e8b120fc95dc0245b4112972d4d7cca3b5Jordan Rose const T *end() const { return _finish; } 4781fb50e8b120fc95dc0245b4112972d4d7cca3b5Jordan Rose }; 4881fb50e8b120fc95dc0245b4112972d4d7cca3b5Jordan Rose 4981fb50e8b120fc95dc0245b4112972d4d7cca3b5Jordan Rose class exception { 5081fb50e8b120fc95dc0245b4112972d4d7cca3b5Jordan Rose public: 5181fb50e8b120fc95dc0245b4112972d4d7cca3b5Jordan Rose exception() throw(); 5281fb50e8b120fc95dc0245b4112972d4d7cca3b5Jordan Rose virtual ~exception() throw(); 5381fb50e8b120fc95dc0245b4112972d4d7cca3b5Jordan Rose virtual const char *what() const throw() { 5481fb50e8b120fc95dc0245b4112972d4d7cca3b5Jordan Rose return 0; 5581fb50e8b120fc95dc0245b4112972d4d7cca3b5Jordan Rose } 5681fb50e8b120fc95dc0245b4112972d4d7cca3b5Jordan Rose }; 5781fb50e8b120fc95dc0245b4112972d4d7cca3b5Jordan Rose} 58