llvm-project/libcxx/test/std/containers/views/span.obs/empty.nodiscard.verify.cpp
Joe Loser 8e92410ecc
[libc++][docs] Mark LWG3274 as complete
Mark LWG3274 as complete. The feature test macro `__cpp_lib_span` was added in
`6d2599e4f776d0cd88438cb82a00c4fc25cc3f67`.

https://wg21.link/p1024 mentions marking `span:::empty()` with
`[[nodiscard]]` which is not done yet. So, do that and add tests.

Reviewed By: ldionne, Quuxplusone, Mordante, #libc

Differential Revision: https://reviews.llvm.org/D111516
2021-10-12 22:31:32 -04:00

25 lines
854 B
C++

//===----------------------------------------------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//
// UNSUPPORTED: c++03, c++11, c++14, c++17
// UNSUPPORTED: libcpp-has-no-incomplete-ranges
// <span>
// [[nodiscard]] constexpr bool empty() const noexcept;
#include <span>
void test() {
std::span<int> s1;
s1.empty(); // expected-warning {{ignoring return value of function declared with 'nodiscard' attribute}}
int arr[] = {1, 2, 3};
std::span<int, 3> s2{arr};
s2.empty(); // expected-warning {{ignoring return value of function declared with 'nodiscard' attribute}}
}