- optional[meta header]
- std[meta namespace]
- optional[meta class]
- function[meta id-type]
- cpp26[meta cpp]
constexpr iterator end() noexcept; // (1)
constexpr const_iterator end() const noexcept; // (2)optionalをrangeとした時の末尾要素の次を指すイテレータを取得する。
begin() + has_value() を返す。
#include <iostream>
#include <iterator>
#include <optional>
int main()
{
std::optional<int> p = 1;
std::cout << std::distance(p.begin(), p.end()) << std::endl;
p = std::nullopt;
std::cout << std::distance(p.begin(), p.end()) << std::endl;
}- end()[color ff0000]
- begin()[link begin.md]
- std::distance[link /reference/iterator/distance.md]
1
0
- C++26
- Clang: ??
- GCC: ??
- ICC: ??
- Visual C++: ??