最終更新日時: 2025年02月27日 15時55分09秒 (JST)
Akira Takahashi が更新

履歴 編集

function
<array>

# std::array::empty(C++11)

    constexpr bool empty() noexcept;                     // C++11
    constexpr bool empty() const noexcept;               // C++14
    [[nodiscard]] constexpr bool empty() const noexcept; // C++20
    constexpr bool empty() const noexcept;               // C++26

## 概要

コンテナが空かどうかを判定する

## 戻り値

コンテナが空であれば`true`、そうでなければ`false`を返す。

`std::array`コンテナに対して動的な要素の追加・削除はできないため、0要素を持つ`std::array`型オブジェクトを定義した場合にのみ、この関数は`true`を返す。

## 例外

投げない

## 計算量

定数時間

## 例

    #include <iostream>
    #include <array>

    int main()
    {
      std::array<int, 3> non_empty_array;
      std::array<int, 0> empty_array;

      std::cout << std::boolalpha;
      std::cout << "non_empty_array : " << non_empty_array.empty() << std::endl;
      std::cout << "empty_array : " << empty_array.empty() << std::endl;
    }

### 出力

    non_empty_array : false
    empty_array : true

## バージョン

### 言語

- C++11

### 処理系

- Clang: ??
- GCC: 4.7.0 ✅
- ICC: ??
- Visual C++: 2008 (std::tr1) ✅, 2010 ✅, 2012 ✅

## 参照

- N3669 Fixing constexpr member functions without const
- P0600R1 `[[nodiscard]]` in the Library
  - C++20で`[[nodiscard]]`が付加された
- P2422R1 Remove `nodiscard` annotations from the standard library specification
  - C++26で`[[nodiscard]]`指定が削除された