最終更新日時(UTC):
が更新

履歴 編集

<queue>

std::queue::推論補助(C++17)

namespace std {
  template <class Container>
  queue(Container)
    -> queue<typename Container::value_type, Container>; // (1)

  template<class InputIterator>
  queue(InputIterator, InputIterator)
    -> queue<<InputIterator>>;  // (2) C++23

  template <class Container, class Allocator>
  queue(Container, Allocator)
    -> queue<typename Container::value_type, Container>; // (3)

  template<class InputIterator, class Allocator>
  queue(InputIterator, InputIterator, Allocator)
    -> queue<iter-value-type<InputIterator>, deque<iter-value-type<InputIterator>,
             Allocator>>;  // (4) C++23
}

概要

std::queueクラステンプレートの型推論補助。元となるコンテナから推論する。

#include <iostream>
#include <queue>
#include <type_traits>

int main()
{
  std::deque d = {1, 2, 3};

  // 元となるコンテナから推論
  std::queue que {d};
  static_assert(std::is_same_v<
    decltype(que),
    std::queue<int>
  >);

  while (!que.empty()) {
    std::cout << que.front() << std::endl;
    que.pop();
  }
}

出力

1
2
3

バージョン

言語

  • C++17

処理系

関連項目

参照