remove index check

This commit is contained in:
blueloveTH 2023-02-23 09:10:18 +08:00
parent ab4fef8c00
commit f88f4b52a4

View File

@ -5,28 +5,7 @@
#include "str.h" #include "str.h"
namespace pkpy { namespace pkpy {
class List: public std::vector<PyVar> { using List = std::vector<PyVar>;
PyVar& at(size_t) = delete;
inline void _check_index(size_t i) const {
if (i >= size()){
auto msg = "std::vector index out of range, " + std::to_string(i) + " not in [0, " + std::to_string(size()) + ")";
throw std::out_of_range(msg);
}
}
public:
PyVar& operator[](size_t i) {
_check_index(i);
return std::vector<PyVar>::operator[](i);
}
const PyVar& operator[](size_t i) const {
_check_index(i);
return std::vector<PyVar>::operator[](i);
}
using std::vector<PyVar>::vector;
};
class Args { class Args {
static THREAD_LOCAL SmallArrayPool<PyVar, 10> _pool; static THREAD_LOCAL SmallArrayPool<PyVar, 10> _pool;