標題頁 / 序列 / 固有的元函數 / begin

begin

摘要

template<
typename X
>
struct begin { typedef unspecified type;
};

描述

返回一個迭代器,指向序列的第一個元素。如果其參數不是一個 前向序列, 則返回 void_.

頭文件

#include <boost/mpl/begin_end.hpp>

Model of

Tag 分派元函數

參數

參數 要求 描述
X 任意類型 要返回其 begin 迭代器的類型

表達式語義

對於任意類型 x:

typedef begin<x>::type first;
返回類型: 前向迭代器void_.
語義: 如果 x 是一個 前向序列, first 是一個指向 s 的第一個元素的迭代器; 否則 firstvoid_.
後置條件: 如果 first 是一個迭代器,要麼它是可提領的,要麼它是 past-the-end; 它是 past-the-end 當且僅當 size<x>::value == 0.

複雜度

分期常量時間。

例子

typedef vector< unsigned char,unsigned short,
unsigned int,unsigned long > unsigned_types;

typedef begin<unsigned_types>::type iter;
BOOST_MPL_ASSERT(( is_same< deref<iter>::type, unsigned char > ));

BOOST_MPL_ASSERT(( is_same< begin<int>::type, void_ > ));

參見

迭代器, 前向序列, end, size, empty