blob: 96ffc346d97f01a1ce349a3fbd498931b4f9dcb4 [file] [log] [blame]
// Copyright 2025 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef BASE_CONTAINERS_SPAN_FORWARD_INTERNAL_H_
#define BASE_CONTAINERS_SPAN_FORWARD_INTERNAL_H_
#include <stddef.h>
#include <limits>
namespace base {
// [span.syn]: Constants
inline constexpr size_t dynamic_extent = std::numeric_limits<size_t>::max();
// [views.span]: class template `span<>`
template <typename ElementType,
size_t Extent = dynamic_extent,
// Storage pointer customization. By default this is not a
// `raw_ptr<>`, since `span` is mostly used for stack variables. Use
// `raw_span` instead for class fields, which sets this to
// `raw_ptr<T>`.
typename InternalPtrType = ElementType*>
class span;
} // namespace base
#endif // BASE_CONTAINERS_SPAN_FORWARD_INTERNAL_H_