catboost 1.25.1 → 1.26.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/DEPLOYMENT.md +22 -15
- package/README.md +37 -27
- package/binding.gyp +5 -7
- package/build_scripts/bootstrap.js +2 -1
- package/build_scripts/out/build.js +46 -68
- package/build_scripts/out/build_model.js +1 -1
- package/build_scripts/out/{build_ya.js → build_native.js} +1 -1
- package/build_scripts/out/ci.js +5 -5
- package/build_scripts/out/config.js +32 -18
- package/build_scripts/out/install.js +5 -3
- package/build_scripts/out/package_prepublish.js +1 -1
- package/build_scripts/out/packaging.js +1 -19
- package/build_scripts/out/run_tests.js +1 -1
- package/build_scripts/out/test.js +8 -3
- package/config.json +18 -11
- package/inc/catboost/libs/model_interface/c_api.h +349 -3
- package/lib/catboost.d.ts +65 -21
- package/package.json +4 -4
- package/src/api_helpers.cpp +100 -24
- package/src/api_helpers.h +8 -7
- package/src/api_module.cpp +1 -2
- package/src/model.cpp +483 -83
- package/src/model.h +24 -9
- package/inc/contrib/libs/cxxsupp/system_stl/include/stlfwd +0 -14
- package/inc/util/charset/recode_result.h +0 -9
- package/inc/util/charset/unicode_table.h +0 -123
- package/inc/util/charset/unidata.h +0 -421
- package/inc/util/charset/utf8.h +0 -384
- package/inc/util/charset/wide.h +0 -843
- package/inc/util/charset/wide_specific.h +0 -22
- package/inc/util/datetime/base.h +0 -669
- package/inc/util/datetime/constants.h +0 -7
- package/inc/util/datetime/cputimer.h +0 -124
- package/inc/util/datetime/parser.h +0 -292
- package/inc/util/datetime/systime.h +0 -47
- package/inc/util/datetime/uptime.h +0 -8
- package/inc/util/digest/city.h +0 -88
- package/inc/util/digest/fnv.h +0 -73
- package/inc/util/digest/multi.h +0 -14
- package/inc/util/digest/murmur.h +0 -57
- package/inc/util/digest/numeric.h +0 -86
- package/inc/util/digest/sequence.h +0 -48
- package/inc/util/draft/date.h +0 -129
- package/inc/util/draft/datetime.h +0 -184
- package/inc/util/draft/enum.h +0 -136
- package/inc/util/draft/holder_vector.h +0 -102
- package/inc/util/draft/ip.h +0 -131
- package/inc/util/draft/matrix.h +0 -108
- package/inc/util/draft/memory.h +0 -40
- package/inc/util/folder/dirent_win.h +0 -46
- package/inc/util/folder/dirut.h +0 -121
- package/inc/util/folder/filelist.h +0 -81
- package/inc/util/folder/fts.h +0 -108
- package/inc/util/folder/iterator.h +0 -109
- package/inc/util/folder/lstat_win.h +0 -20
- package/inc/util/folder/path.h +0 -225
- package/inc/util/folder/pathsplit.h +0 -113
- package/inc/util/folder/tempdir.h +0 -42
- package/inc/util/generic/adaptor.h +0 -134
- package/inc/util/generic/algorithm.h +0 -765
- package/inc/util/generic/array_ref.h +0 -282
- package/inc/util/generic/array_size.h +0 -24
- package/inc/util/generic/benchmark/vector_count_ctor/f.h +0 -9
- package/inc/util/generic/bitmap.h +0 -1115
- package/inc/util/generic/bitops.h +0 -459
- package/inc/util/generic/bt_exception.h +0 -24
- package/inc/util/generic/buffer.h +0 -232
- package/inc/util/generic/cast.h +0 -176
- package/inc/util/generic/deque.h +0 -24
- package/inc/util/generic/explicit_type.h +0 -42
- package/inc/util/generic/fastqueue.h +0 -55
- package/inc/util/generic/flags.h +0 -244
- package/inc/util/generic/function.h +0 -103
- package/inc/util/generic/fwd.h +0 -171
- package/inc/util/generic/guid.h +0 -61
- package/inc/util/generic/hash.h +0 -2032
- package/inc/util/generic/hash_primes.h +0 -140
- package/inc/util/generic/hash_set.h +0 -490
- package/inc/util/generic/hide_ptr.h +0 -3
- package/inc/util/generic/intrlist.h +0 -876
- package/inc/util/generic/is_in.h +0 -53
- package/inc/util/generic/iterator.h +0 -137
- package/inc/util/generic/iterator_range.h +0 -105
- package/inc/util/generic/lazy_value.h +0 -66
- package/inc/util/generic/list.h +0 -22
- package/inc/util/generic/map.h +0 -44
- package/inc/util/generic/mapfindptr.h +0 -60
- package/inc/util/generic/maybe.h +0 -713
- package/inc/util/generic/maybe_traits.h +0 -164
- package/inc/util/generic/mem_copy.h +0 -55
- package/inc/util/generic/noncopyable.h +0 -38
- package/inc/util/generic/object_counter.h +0 -53
- package/inc/util/generic/ptr.h +0 -1113
- package/inc/util/generic/queue.h +0 -57
- package/inc/util/generic/refcount.h +0 -162
- package/inc/util/generic/reserve.h +0 -11
- package/inc/util/generic/scope.h +0 -65
- package/inc/util/generic/serialized_enum.h +0 -406
- package/inc/util/generic/set.h +0 -42
- package/inc/util/generic/singleton.h +0 -136
- package/inc/util/generic/size_literals.h +0 -65
- package/inc/util/generic/stack.h +0 -18
- package/inc/util/generic/store_policy.h +0 -120
- package/inc/util/generic/strbase.h +0 -612
- package/inc/util/generic/strbuf.h +0 -552
- package/inc/util/generic/strfcpy.h +0 -17
- package/inc/util/generic/string.h +0 -1572
- package/inc/util/generic/string_hash.h +0 -21
- package/inc/util/generic/string_ut.h +0 -1175
- package/inc/util/generic/type_name.h +0 -34
- package/inc/util/generic/typelist.h +0 -114
- package/inc/util/generic/typetraits.h +0 -325
- package/inc/util/generic/utility.h +0 -132
- package/inc/util/generic/va_args.h +0 -400
- package/inc/util/generic/variant.h +0 -631
- package/inc/util/generic/variant_traits.h +0 -171
- package/inc/util/generic/vector.h +0 -119
- package/inc/util/generic/xrange.h +0 -258
- package/inc/util/generic/yexception.h +0 -212
- package/inc/util/generic/yexception_ut.h +0 -14
- package/inc/util/generic/ylimits.h +0 -92
- package/inc/util/generic/ymath.h +0 -206
- package/inc/util/memory/addstorage.h +0 -93
- package/inc/util/memory/alloc.h +0 -27
- package/inc/util/memory/blob.h +0 -296
- package/inc/util/memory/mmapalloc.h +0 -8
- package/inc/util/memory/pool.h +0 -432
- package/inc/util/memory/segmented_string_pool.h +0 -194
- package/inc/util/memory/segpool_alloc.h +0 -118
- package/inc/util/memory/smallobj.h +0 -141
- package/inc/util/memory/tempbuf.h +0 -111
- package/inc/util/network/address.h +0 -136
- package/inc/util/network/endpoint.h +0 -61
- package/inc/util/network/hostip.h +0 -16
- package/inc/util/network/init.h +0 -60
- package/inc/util/network/interface.h +0 -17
- package/inc/util/network/iovec.h +0 -65
- package/inc/util/network/ip.h +0 -116
- package/inc/util/network/nonblock.h +0 -8
- package/inc/util/network/pair.h +0 -9
- package/inc/util/network/poller.h +0 -58
- package/inc/util/network/pollerimpl.h +0 -707
- package/inc/util/network/sock.h +0 -608
- package/inc/util/network/socket.h +0 -421
- package/inc/util/random/common_ops.h +0 -130
- package/inc/util/random/easy.h +0 -47
- package/inc/util/random/entropy.h +0 -21
- package/inc/util/random/fast.h +0 -101
- package/inc/util/random/init_atfork.h +0 -3
- package/inc/util/random/lcg_engine.h +0 -66
- package/inc/util/random/mersenne.h +0 -46
- package/inc/util/random/mersenne32.h +0 -50
- package/inc/util/random/mersenne64.h +0 -50
- package/inc/util/random/normal.h +0 -38
- package/inc/util/random/random.h +0 -30
- package/inc/util/random/shuffle.h +0 -39
- package/inc/util/str_stl.h +0 -266
- package/inc/util/stream/aligned.h +0 -99
- package/inc/util/stream/buffer.h +0 -119
- package/inc/util/stream/buffered.h +0 -225
- package/inc/util/stream/debug.h +0 -53
- package/inc/util/stream/direct_io.h +0 -43
- package/inc/util/stream/file.h +0 -108
- package/inc/util/stream/format.h +0 -444
- package/inc/util/stream/fwd.h +0 -100
- package/inc/util/stream/hex.h +0 -8
- package/inc/util/stream/holder.h +0 -44
- package/inc/util/stream/input.h +0 -273
- package/inc/util/stream/labeled.h +0 -19
- package/inc/util/stream/length.h +0 -100
- package/inc/util/stream/mem.h +0 -255
- package/inc/util/stream/multi.h +0 -32
- package/inc/util/stream/null.h +0 -61
- package/inc/util/stream/output.h +0 -304
- package/inc/util/stream/pipe.h +0 -112
- package/inc/util/stream/printf.h +0 -25
- package/inc/util/stream/str.h +0 -207
- package/inc/util/stream/tee.h +0 -28
- package/inc/util/stream/tempbuf.h +0 -21
- package/inc/util/stream/tokenizer.h +0 -214
- package/inc/util/stream/trace.h +0 -60
- package/inc/util/stream/walk.h +0 -35
- package/inc/util/stream/zerocopy.h +0 -91
- package/inc/util/stream/zerocopy_output.h +0 -57
- package/inc/util/stream/zlib.h +0 -173
- package/inc/util/string/ascii.h +0 -236
- package/inc/util/string/builder.h +0 -39
- package/inc/util/string/cast.h +0 -347
- package/inc/util/string/cstriter.h +0 -14
- package/inc/util/string/escape.h +0 -70
- package/inc/util/string/hex.h +0 -59
- package/inc/util/string/join.h +0 -194
- package/inc/util/string/printf.h +0 -13
- package/inc/util/string/reverse.h +0 -16
- package/inc/util/string/split.h +0 -1080
- package/inc/util/string/strip.h +0 -257
- package/inc/util/string/strspn.h +0 -65
- package/inc/util/string/subst.h +0 -56
- package/inc/util/string/type.h +0 -50
- package/inc/util/string/util.h +0 -195
- package/inc/util/string/vector.h +0 -132
- package/inc/util/system/align.h +0 -50
- package/inc/util/system/atexit.h +0 -22
- package/inc/util/system/atomic.h +0 -51
- package/inc/util/system/atomic_gcc.h +0 -90
- package/inc/util/system/atomic_ops.h +0 -189
- package/inc/util/system/atomic_win.h +0 -114
- package/inc/util/system/backtrace.h +0 -39
- package/inc/util/system/byteorder.h +0 -186
- package/inc/util/system/compat.h +0 -84
- package/inc/util/system/compiler.h +0 -620
- package/inc/util/system/condvar.h +0 -71
- package/inc/util/system/context.h +0 -181
- package/inc/util/system/context_aarch64.h +0 -8
- package/inc/util/system/context_i686.h +0 -9
- package/inc/util/system/context_x86.h +0 -12
- package/inc/util/system/context_x86_64.h +0 -7
- package/inc/util/system/cpu_id.h +0 -159
- package/inc/util/system/daemon.h +0 -28
- package/inc/util/system/datetime.h +0 -98
- package/inc/util/system/defaults.h +0 -149
- package/inc/util/system/demangle.h +0 -5
- package/inc/util/system/demangle_impl.h +0 -23
- package/inc/util/system/direct_io.h +0 -71
- package/inc/util/system/dynlib.h +0 -119
- package/inc/util/system/env.h +0 -32
- package/inc/util/system/error.h +0 -95
- package/inc/util/system/event.h +0 -122
- package/inc/util/system/execpath.h +0 -17
- package/inc/util/system/fasttime.h +0 -6
- package/inc/util/system/fhandle.h +0 -27
- package/inc/util/system/file.h +0 -210
- package/inc/util/system/file_lock.h +0 -34
- package/inc/util/system/filemap.h +0 -383
- package/inc/util/system/flock.h +0 -35
- package/inc/util/system/fs.h +0 -156
- package/inc/util/system/fs_win.h +0 -29
- package/inc/util/system/fstat.h +0 -46
- package/inc/util/system/getpid.h +0 -12
- package/inc/util/system/guard.h +0 -179
- package/inc/util/system/hi_lo.h +0 -139
- package/inc/util/system/hostname.h +0 -10
- package/inc/util/system/hp_timer.h +0 -36
- package/inc/util/system/info.h +0 -12
- package/inc/util/system/interrupt_signals.h +0 -22
- package/inc/util/system/madvise.h +0 -30
- package/inc/util/system/maxlen.h +0 -32
- package/inc/util/system/mem_info.h +0 -18
- package/inc/util/system/mincore.h +0 -38
- package/inc/util/system/mktemp.h +0 -11
- package/inc/util/system/mlock.h +0 -43
- package/inc/util/system/mutex.h +0 -67
- package/inc/util/system/nice.h +0 -3
- package/inc/util/system/pipe.h +0 -90
- package/inc/util/system/platform.h +0 -246
- package/inc/util/system/progname.h +0 -13
- package/inc/util/system/protect.h +0 -25
- package/inc/util/system/rusage.h +0 -26
- package/inc/util/system/rwlock.h +0 -78
- package/inc/util/system/sanitizers.h +0 -122
- package/inc/util/system/sem.h +0 -41
- package/inc/util/system/shellcommand.h +0 -472
- package/inc/util/system/shmat.h +0 -32
- package/inc/util/system/sigset.h +0 -78
- package/inc/util/system/spin_wait.h +0 -10
- package/inc/util/system/spinlock.h +0 -121
- package/inc/util/system/src_location.h +0 -25
- package/inc/util/system/src_root.h +0 -68
- package/inc/util/system/sys_alloc.h +0 -43
- package/inc/util/system/sysstat.h +0 -52
- package/inc/util/system/tempfile.h +0 -34
- package/inc/util/system/thread.h +0 -167
- package/inc/util/system/tls.h +0 -307
- package/inc/util/system/types.h +0 -119
- package/inc/util/system/unaligned_mem.h +0 -67
- package/inc/util/system/user.h +0 -5
- package/inc/util/system/utime.h +0 -6
- package/inc/util/system/valgrind.h +0 -48
- package/inc/util/system/winint.h +0 -43
- package/inc/util/system/yassert.h +0 -121
- package/inc/util/system/yield.h +0 -4
- package/inc/util/thread/factory.h +0 -65
- package/inc/util/thread/fwd.h +0 -30
- package/inc/util/thread/lfqueue.h +0 -406
- package/inc/util/thread/lfstack.h +0 -188
- package/inc/util/thread/pool.h +0 -388
- package/inc/util/thread/singleton.h +0 -42
- package/inc/util/ysafeptr.h +0 -427
- package/inc/util/ysaveload.h +0 -700
|
@@ -1,282 +0,0 @@
|
|
|
1
|
-
#pragma once
|
|
2
|
-
|
|
3
|
-
#include <util/generic/yexception.h>
|
|
4
|
-
|
|
5
|
-
#include <algorithm>
|
|
6
|
-
#include <initializer_list>
|
|
7
|
-
#include <iterator>
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* `TArrayRef` works pretty much like `std::span` with dynamic extent, presenting
|
|
11
|
-
* an array-like interface into a contiguous sequence of objects.
|
|
12
|
-
*
|
|
13
|
-
* It can be used at interface boundaries instead of `TVector` or
|
|
14
|
-
* pointer-size pairs, and is actually a preferred way to pass contiguous data
|
|
15
|
-
* into functions.
|
|
16
|
-
*
|
|
17
|
-
* Note that `TArrayRef` can be auto-constructed from any contiguous container
|
|
18
|
-
* (with `size` and `data` members), and thus you don't have to change client code
|
|
19
|
-
* when switching over from passing `TVector` to `TArrayRef`.
|
|
20
|
-
*
|
|
21
|
-
* Note that `TArrayRef` has the same const-semantics as raw pointers:
|
|
22
|
-
* - `TArrayRef<T>` is a non-const reference to non-const data (like `T*`);
|
|
23
|
-
* - `TArrayRef<const T>` is a non-const reference to const data (like `const T*`);
|
|
24
|
-
* - `const TArrayRef<T>` is a const reference to non-const data (like `T* const`);
|
|
25
|
-
* - `const TArrayRef<const T>` is a const reference to const data (like `const T* const`).
|
|
26
|
-
*/
|
|
27
|
-
template <class T>
|
|
28
|
-
class TArrayRef {
|
|
29
|
-
public:
|
|
30
|
-
using iterator = T*;
|
|
31
|
-
using const_iterator = const T*;
|
|
32
|
-
using reference = T&;
|
|
33
|
-
using const_reference = const T&;
|
|
34
|
-
using value_type = T;
|
|
35
|
-
using reverse_iterator = std::reverse_iterator<iterator>;
|
|
36
|
-
using const_reverse_iterator = std::reverse_iterator<const_iterator>;
|
|
37
|
-
|
|
38
|
-
constexpr inline TArrayRef() noexcept
|
|
39
|
-
: T_(nullptr)
|
|
40
|
-
, S_(0)
|
|
41
|
-
{
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
constexpr inline TArrayRef(T* data, size_t len) noexcept
|
|
45
|
-
: T_(data)
|
|
46
|
-
, S_(len)
|
|
47
|
-
{
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
constexpr inline TArrayRef(T* begin, T* end) noexcept
|
|
51
|
-
: T_(begin)
|
|
52
|
-
, S_(end - begin)
|
|
53
|
-
{
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
constexpr inline TArrayRef(std::initializer_list<T> list) noexcept
|
|
57
|
-
: T_(list.begin())
|
|
58
|
-
, S_(list.size())
|
|
59
|
-
{
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
template <class Container>
|
|
63
|
-
constexpr inline TArrayRef(Container&& container, decltype(std::declval<T*&>() = container.data(), nullptr) = nullptr) noexcept
|
|
64
|
-
: T_(container.data())
|
|
65
|
-
, S_(container.size())
|
|
66
|
-
{
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
template <size_t N>
|
|
70
|
-
constexpr inline TArrayRef(T (&array)[N]) noexcept
|
|
71
|
-
: T_(array)
|
|
72
|
-
, S_(N)
|
|
73
|
-
{
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
template <class TT, typename = std::enable_if_t<std::is_same<std::remove_const_t<T>, std::remove_const_t<TT>>::value>>
|
|
77
|
-
bool operator==(const TArrayRef<TT>& other) const noexcept {
|
|
78
|
-
return (S_ == other.size()) && std::equal(begin(), end(), other.begin());
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
constexpr inline T* data() const noexcept {
|
|
82
|
-
return T_;
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
constexpr inline size_t size() const noexcept {
|
|
86
|
-
return S_;
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
constexpr size_t size_bytes() const noexcept {
|
|
90
|
-
return (size() * sizeof(T));
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
constexpr inline bool empty() const noexcept {
|
|
94
|
-
return (S_ == 0);
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
constexpr inline iterator begin() const noexcept {
|
|
98
|
-
return T_;
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
constexpr inline iterator end() const noexcept {
|
|
102
|
-
return (T_ + S_);
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
constexpr inline const_iterator cbegin() const noexcept {
|
|
106
|
-
return T_;
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
constexpr inline const_iterator cend() const noexcept {
|
|
110
|
-
return (T_ + S_);
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
constexpr inline reverse_iterator rbegin() const noexcept {
|
|
114
|
-
return reverse_iterator(T_ + S_);
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
constexpr inline reverse_iterator rend() const noexcept {
|
|
118
|
-
return reverse_iterator(T_);
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
constexpr inline const_reverse_iterator crbegin() const noexcept {
|
|
122
|
-
return const_reverse_iterator(T_ + S_);
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
constexpr inline const_reverse_iterator crend() const noexcept {
|
|
126
|
-
return const_reverse_iterator(T_);
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
constexpr inline reference front() const noexcept {
|
|
130
|
-
return *T_;
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
inline reference back() const noexcept {
|
|
134
|
-
Y_ASSERT(S_ > 0);
|
|
135
|
-
|
|
136
|
-
return *(end() - 1);
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
inline reference operator[](size_t n) const noexcept {
|
|
140
|
-
Y_ASSERT(n < S_);
|
|
141
|
-
|
|
142
|
-
return *(T_ + n);
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
inline reference at(size_t n) const {
|
|
146
|
-
if (n >= S_) {
|
|
147
|
-
throw std::out_of_range("array ref range error");
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
return (*this)[n];
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
constexpr inline explicit operator bool() const noexcept {
|
|
154
|
-
return (S_ > 0);
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
/**
|
|
158
|
-
* Obtains a ref that is a view over the first `count` elements of this TArrayRef.
|
|
159
|
-
*
|
|
160
|
-
* The behavior is undefined if count > size().
|
|
161
|
-
*/
|
|
162
|
-
TArrayRef first(size_t count) const {
|
|
163
|
-
Y_ASSERT(count <= size());
|
|
164
|
-
return TArrayRef(data(), count);
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
/**
|
|
168
|
-
* Obtains a ref that is a view over the last `count` elements of this TArrayRef.
|
|
169
|
-
*
|
|
170
|
-
* The behavior is undefined if count > size().
|
|
171
|
-
*/
|
|
172
|
-
TArrayRef last(size_t count) const {
|
|
173
|
-
Y_ASSERT(count <= size());
|
|
174
|
-
return TArrayRef(end() - count, end());
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
/**
|
|
178
|
-
* Obtains a ref that is a view over the `count` elements of this TArrayRef starting at `offset`.
|
|
179
|
-
*
|
|
180
|
-
* The behavior is undefined in either offset or count is out of range.
|
|
181
|
-
*/
|
|
182
|
-
TArrayRef subspan(size_t offset) const {
|
|
183
|
-
Y_ASSERT(offset <= size());
|
|
184
|
-
return TArrayRef(data() + offset, size() - offset);
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
TArrayRef subspan(size_t offset, size_t count) const {
|
|
188
|
-
Y_ASSERT(offset + count <= size());
|
|
189
|
-
return TArrayRef(data() + offset, count);
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
TArrayRef Slice(size_t offset) const {
|
|
193
|
-
return subspan(offset);
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
TArrayRef Slice(size_t offset, size_t size) const {
|
|
197
|
-
return subspan(offset, size);
|
|
198
|
-
}
|
|
199
|
-
|
|
200
|
-
/* FIXME:
|
|
201
|
-
* This method is placed here for backward compatibility only and should be removed.
|
|
202
|
-
* Keep in mind that it's behavior is different from Slice():
|
|
203
|
-
* SubRegion() never throws. It returns empty TArrayRef in case of invalid input.
|
|
204
|
-
*
|
|
205
|
-
* DEPRECATED. DO NOT USE.
|
|
206
|
-
*/
|
|
207
|
-
TArrayRef SubRegion(size_t offset, size_t size) const {
|
|
208
|
-
if (size == 0 || offset >= S_) {
|
|
209
|
-
return TArrayRef();
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
if (size > S_ - offset) {
|
|
213
|
-
size = S_ - offset;
|
|
214
|
-
}
|
|
215
|
-
|
|
216
|
-
return TArrayRef(T_ + offset, size);
|
|
217
|
-
}
|
|
218
|
-
|
|
219
|
-
constexpr inline yssize_t ysize() const noexcept {
|
|
220
|
-
return static_cast<yssize_t>(this->size());
|
|
221
|
-
}
|
|
222
|
-
|
|
223
|
-
private:
|
|
224
|
-
T* T_;
|
|
225
|
-
size_t S_;
|
|
226
|
-
};
|
|
227
|
-
|
|
228
|
-
/**
|
|
229
|
-
* Obtains a view to the object representation of the elements of the TArrayRef arrayRef.
|
|
230
|
-
*
|
|
231
|
-
* Named as its std counterparts, std::as_bytes.
|
|
232
|
-
*/
|
|
233
|
-
template<typename T>
|
|
234
|
-
TArrayRef<const char> as_bytes(TArrayRef<T> arrayRef) noexcept {
|
|
235
|
-
return TArrayRef<const char>(
|
|
236
|
-
reinterpret_cast<const char*>(arrayRef.data()),
|
|
237
|
-
arrayRef.size_bytes()
|
|
238
|
-
);
|
|
239
|
-
}
|
|
240
|
-
|
|
241
|
-
/**
|
|
242
|
-
* Obtains a view to the writable object representation of the elements of the TArrayRef arrayRef.
|
|
243
|
-
*
|
|
244
|
-
* Named as its std counterparts, std::as_writable_bytes.
|
|
245
|
-
*/
|
|
246
|
-
template<typename T>
|
|
247
|
-
TArrayRef<char> as_writable_bytes(TArrayRef<T> arrayRef) noexcept {
|
|
248
|
-
return TArrayRef<char>(
|
|
249
|
-
reinterpret_cast<char*>(arrayRef.data()),
|
|
250
|
-
arrayRef.size_bytes()
|
|
251
|
-
);
|
|
252
|
-
}
|
|
253
|
-
|
|
254
|
-
template <class Range>
|
|
255
|
-
constexpr TArrayRef<const typename Range::value_type> MakeArrayRef(const Range& range) {
|
|
256
|
-
return TArrayRef<const typename Range::value_type>(range);
|
|
257
|
-
}
|
|
258
|
-
|
|
259
|
-
template <class Range>
|
|
260
|
-
constexpr TArrayRef<typename Range::value_type> MakeArrayRef(Range& range) {
|
|
261
|
-
return TArrayRef<typename Range::value_type>(range);
|
|
262
|
-
}
|
|
263
|
-
|
|
264
|
-
template <class Range>
|
|
265
|
-
constexpr TArrayRef<const typename Range::value_type> MakeConstArrayRef(const Range& range) {
|
|
266
|
-
return TArrayRef<const typename Range::value_type>(range);
|
|
267
|
-
}
|
|
268
|
-
|
|
269
|
-
template <class Range>
|
|
270
|
-
constexpr TArrayRef<const typename Range::value_type> MakeConstArrayRef(Range& range) {
|
|
271
|
-
return TArrayRef<const typename Range::value_type>(range);
|
|
272
|
-
}
|
|
273
|
-
|
|
274
|
-
template <class T>
|
|
275
|
-
constexpr TArrayRef<T> MakeArrayRef(T* data, size_t size) {
|
|
276
|
-
return TArrayRef<T>(data, size);
|
|
277
|
-
}
|
|
278
|
-
|
|
279
|
-
template <class T>
|
|
280
|
-
constexpr TArrayRef<T> MakeArrayRef(T* begin, T* end) {
|
|
281
|
-
return TArrayRef<T>(begin, end);
|
|
282
|
-
}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
#pragma once
|
|
2
|
-
|
|
3
|
-
#include <cstddef>
|
|
4
|
-
|
|
5
|
-
namespace NArraySizePrivate {
|
|
6
|
-
template <class T>
|
|
7
|
-
struct TArraySize;
|
|
8
|
-
|
|
9
|
-
template <class T, size_t N>
|
|
10
|
-
struct TArraySize<T[N]> {
|
|
11
|
-
enum {
|
|
12
|
-
Result = N
|
|
13
|
-
};
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
template <class T, size_t N>
|
|
17
|
-
struct TArraySize<T (&)[N]> {
|
|
18
|
-
enum {
|
|
19
|
-
Result = N
|
|
20
|
-
};
|
|
21
|
-
};
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
#define Y_ARRAY_SIZE(arr) ((size_t)::NArraySizePrivate::TArraySize<decltype(arr)>::Result)
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
#pragma once
|
|
2
|
-
|
|
3
|
-
#include <cstddef>
|
|
4
|
-
|
|
5
|
-
// functions are declared in a separate translation unit so that compiler won't be able to see the
|
|
6
|
-
// value of `size` during compilation.
|
|
7
|
-
|
|
8
|
-
void CreateYvector(const size_t size, const size_t count);
|
|
9
|
-
void CreateCarray(const size_t size, const size_t count);
|