blob: 4fd1f1f26a7e60ff1e2a2da7f9805d8f73ee43fd [file] [log] [blame]
// Copyright 2020 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "to_std_array.h"
#include <type_traits>
#include <gtest/gtest.h>
namespace bt_lib_cpp_type {
namespace {
TEST(TypeTest, ToStdArray) {
struct Foo;
static_assert(std::is_same_v<Foo, ToStdArrayT<Foo>>);
static_assert(std::is_same_v<int, ToStdArrayT<int>>);
static_assert(std::is_same_v<std::array<int, 0>, ToStdArrayT<int[]>>);
static_assert(std::is_same_v<std::array<int, 2>, ToStdArrayT<int[2]>>);
static_assert(std::is_same_v<std::array<int*, 2>, ToStdArrayT<int* [2]>>);
static_assert(std::is_same_v<std::array<std::array<int, 3>, 2>, ToStdArrayT<int[2][3]>>);
constexpr const char kStr[] = "foo";
static_assert(std::is_same_v<std::array<const char, sizeof(kStr)>, ToStdArrayT<decltype(kStr)>>);
}
} // namespace
} // namespace bt_lib_cpp_type