Viewing file: v8-memory-span.h (1.25 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
// Copyright 2021 the V8 project authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file.
#ifndef INCLUDE_V8_MEMORY_SPAN_H_ #define INCLUDE_V8_MEMORY_SPAN_H_
#include <stddef.h>
#include "v8config.h" // NOLINT(build/include_directory)
namespace v8 {
/** * Points to an unowned continous buffer holding a known number of elements. * * This is similar to std::span (under consideration for C++20), but does not * require advanced C++ support. In the (far) future, this may be replaced with * or aliased to std::span. * * To facilitate future migration, this class exposes a subset of the interface * implemented by std::span. */ template <typename T> class V8_EXPORT MemorySpan { public: /** The default constructor creates an empty span. */ constexpr MemorySpan() = default;
constexpr MemorySpan(T* data, size_t size) : data_(data), size_(size) {}
/** Returns a pointer to the beginning of the buffer. */ constexpr T* data() const { return data_; } /** Returns the number of elements that the buffer holds. */ constexpr size_t size() const { return size_; }
private: T* data_ = nullptr; size_t size_ = 0; };
} // namespace v8 #endif // INCLUDE_V8_MEMORY_SPAN_H_
|