You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
27 lines
929 B
27 lines
929 B
// Copyright 2019 The Chromium OS 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 LIBBRILLO_BRILLO_ARRAY_UTILS_H_
|
|
#define LIBBRILLO_BRILLO_ARRAY_UTILS_H_
|
|
|
|
#include <array>
|
|
#include <utility>
|
|
|
|
namespace brillo {
|
|
|
|
// Create a std::array from a set of values without manually specifying the
|
|
// size of the array. Note that unlike the make_array likely to make its way
|
|
// into C++20, this function always requires the user to specify ElementType.
|
|
// This is done so that users are not surprised by the element type of resulting
|
|
// arrays when std::common_type is used.
|
|
template <typename ElementType, typename... T>
|
|
constexpr auto make_array(T&&... values) {
|
|
return std::array<ElementType, sizeof...(T)>{
|
|
static_cast<ElementType>(std::forward<T>(values))...};
|
|
}
|
|
|
|
} // namespace brillo
|
|
|
|
#endif // LIBBRILLO_BRILLO_ARRAY_UTILS_H_
|