Differential D127418 Diff 439482 libcxx/test/std/containers/views/views.span/span.sub/first.verify.cpp
Changeset View
Changeset View
Standalone View
Standalone View
libcxx/test/std/containers/views/views.span/span.sub/first.verify.cpp
- This file was moved from libcxx/test/std/containers/views/views.span/span.sub/first.fail.cpp.
//===----------------------------------------------------------------------===// | //===----------------------------------------------------------------------===// | ||||
// | // | ||||
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. | // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. | ||||
// See https://llvm.org/LICENSE.txt for license information. | // See https://llvm.org/LICENSE.txt for license information. | ||||
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception | // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception | ||||
// | // | ||||
//===----------------------------------------------------------------------===// | //===----------------------------------------------------------------------===// | ||||
// UNSUPPORTED: c++03, c++11, c++14, c++17 | // UNSUPPORTED: c++03, c++11, c++14, c++17 | ||||
// <span> | // <span> | ||||
// template<size_t Count> | // template<size_t Count> | ||||
// constexpr span<element_type, Count> first() const; | // constexpr span<element_type, Count> first() const; | ||||
// | // | ||||
// constexpr span<element_type, dynamic_extent> first(size_type count) const; | |||||
// | |||||
// Requires: Count <= size(). | // Requires: Count <= size(). | ||||
#include <span> | #include <span> | ||||
#include <cstddef> | #include <cstddef> | ||||
#include "test_macros.h" | void f() { | ||||
int array[] = {1, 2, 3, 4}; | |||||
constexpr int carr[] = {1, 2, 3, 4}; | std::span<const int, 4> sp(array); | ||||
int main(int, char**) { | |||||
std::span<const int, 4> sp(carr); | |||||
// Count too large | // Count too large | ||||
{ | [[maybe_unused]] auto s1 = sp.first<5>(); // expected-error@span:* {{span<T, N>::first<Count>(): Count out of range}} | ||||
[[maybe_unused]] auto s1 = sp.first<5>(); // expected-error-re@span:* {{static_assert failed{{( due to requirement '.*')?}} "Count out of range in span::first()"}} | |||||
} | |||||
// Count numeric_limits | // Count numeric_limits | ||||
{ | [[maybe_unused]] auto s2 = sp.first<std::size_t(-1)>(); // expected-error@span:* {{span<T, N>::first<Count>(): Count out of range}} | ||||
[[maybe_unused]] auto s1 = sp.first<std::size_t(-1)>(); // expected-error-re@span:* {{static_assert failed{{( due to requirement '.*')?}} "Count out of range in span::first()"}} | |||||
} | |||||
return 0; | |||||
} | } |