mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-07-07 03:38:31 +00:00
Get Cosmopolitan into releasable state
A new rollup tool now exists for flattening out the headers in a way that works better for our purposes than cpp. A lot of the API clutter has been removed. APIs that aren't a sure thing in terms of general recommendation are now marked internal. There's now a smoke test for the amalgamation archive and gigantic header file. So we can now guarantee you can use this project on the easiest difficulty setting without the gigantic repository. A website is being created, which is currently a work in progress: https://justine.storage.googleapis.com/cosmopolitan/index.html
This commit is contained in:
parent
dba7552c1e
commit
ea0b5d9d1c
775 changed files with 6864 additions and 3963 deletions
|
@ -1,24 +1,6 @@
|
|||
/*-*-mode:c++;indent-tabs-mode:nil;c-basic-offset:2;tab-width:8;coding:utf-8-*-│
|
||||
│vi: set net ft=c++ ts=2 sts=2 sw=2 fenc=utf-8 :vi│
|
||||
╞══════════════════════════════════════════════════════════════════════════════╡
|
||||
│ Copyright 2020 Justine Alexandra Roberts Tunney │
|
||||
│ │
|
||||
│ This program is free software; you can redistribute it and/or modify │
|
||||
│ it under the terms of the GNU General Public License as published by │
|
||||
│ the Free Software Foundation; version 2 of the License. │
|
||||
│ │
|
||||
│ This program is distributed in the hope that it will be useful, but │
|
||||
│ WITHOUT ANY WARRANTY; without even the implied warranty of │
|
||||
│ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU │
|
||||
│ General Public License for more details. │
|
||||
│ │
|
||||
│ You should have received a copy of the GNU General Public License │
|
||||
│ along with this program; if not, write to the Free Software │
|
||||
│ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA │
|
||||
│ 02110-1301 USA │
|
||||
╚─────────────────────────────────────────────────────────────────────────────*/
|
||||
#ifndef COSMOPOLITAN_LIBC_OHMYPLUS_VECTOR_H_
|
||||
#define COSMOPOLITAN_LIBC_OHMYPLUS_VECTOR_H_
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
void __vector_reserve(size_t, size_t, intptr_t **, size_t *);
|
||||
} /* extern c */
|
||||
|
@ -27,17 +9,38 @@ namespace std {
|
|||
template <class T>
|
||||
class vector {
|
||||
public:
|
||||
vector() : data_(NULL), size_(0), toto_(0) {}
|
||||
vector(size_t n) : data_(NULL), size_(n), toto_(0) { VectorReserve(n); }
|
||||
size_t size() const { return size_; }
|
||||
size_t capacity() const { return toto_; }
|
||||
T &front() { return data_[0]; }
|
||||
T &back() { return data_[size_ - 1]; }
|
||||
void clear() { size_ = 0; }
|
||||
void reserve(size_t n) { VectorReserve(n); }
|
||||
void resize(size_t n) { reserve((size_ = n)); }
|
||||
bool empty() const { return !size_; }
|
||||
T &operator[](size_t i) { return data_[i]; }
|
||||
vector() : data_(NULL), size_(0), toto_(0) {
|
||||
}
|
||||
vector(size_t n) : data_(NULL), size_(n), toto_(0) {
|
||||
VectorReserve(n);
|
||||
}
|
||||
size_t size() const {
|
||||
return size_;
|
||||
}
|
||||
size_t capacity() const {
|
||||
return toto_;
|
||||
}
|
||||
T &front() {
|
||||
return data_[0];
|
||||
}
|
||||
T &back() {
|
||||
return data_[size_ - 1];
|
||||
}
|
||||
void clear() {
|
||||
size_ = 0;
|
||||
}
|
||||
void reserve(size_t n) {
|
||||
VectorReserve(n);
|
||||
}
|
||||
void resize(size_t n) {
|
||||
reserve((size_ = n));
|
||||
}
|
||||
bool empty() const {
|
||||
return !size_;
|
||||
}
|
||||
T &operator[](size_t i) {
|
||||
return data_[i];
|
||||
}
|
||||
|
||||
private:
|
||||
T *data_;
|
||||
|
@ -49,4 +52,5 @@ class vector {
|
|||
};
|
||||
|
||||
}; /* namespace std */
|
||||
#endif /* __cplusplus */
|
||||
#endif /* COSMOPOLITAN_LIBC_OHMYPLUS_VECTOR_H_ */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue