chromium/third_party/skia/src/base/SkZip.h

/*
 * Copyright 2019 Google Inc.
 *
 * Use of this source code is governed by a BSD-style license that can be
 * found in the LICENSE file.
 */

#ifndef SkZip_DEFINED
#define SkZip_DEFINED

#include "include/private/base/SkAssert.h"
#include "include/private/base/SkDebug.h"
#include "include/private/base/SkSpan_impl.h"

#include <algorithm>
#include <cstddef>
#include <cstdint>
#include <iterator>
#include <tuple>
#include <utility>

// Take a list of things that can be pointers, and use them all in parallel. The iterators and
// accessor operator[] for the class produce a tuple of the items.
template<typename... Ts>
class SkZip {};

class SkMakeZipDetail {};

template<typename... Ts>
SkZip(size_t size, Ts*... ts) -> SkZip<Ts...>;

template<typename... Ts>
inline constexpr auto SkMakeZip(Ts&& ... ts) {}
#endif //SkZip_DEFINED