本文整理汇总了C++中range::first方法的典型用法代码示例。如果您正苦于以下问题:C++ range::first方法的具体用法?C++ range::first怎么用?C++ range::first使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类range
的用法示例。
在下文中一共展示了range::first方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: check_repeat_a
template <class Parser> void check_repeat_a (Parser const & parser) {
using range::empty; using range::first; using range::drop;
{
std::string r ("aa");
auto result = parse (parser, r);
BOOST_CHECK (success (result));
auto o = output (result);
BOOST_CHECK (!empty (o));
BOOST_CHECK (!empty (drop (o)));
BOOST_CHECK (empty (drop (drop (o))));
BOOST_CHECK_EQUAL (first (o), 'a');
BOOST_CHECK_EQUAL (first (drop (o)), 'a');
BOOST_CHECK (empty (rest (result)));
}
{
std::string r ("ab");
auto result = parse (parser, r);
BOOST_CHECK (success (result));
auto o = output (result);
BOOST_CHECK (!empty (o));
BOOST_CHECK (empty (drop (o)));
BOOST_CHECK_EQUAL (first (o), 'a');
BOOST_CHECK_EQUAL (first (rest (result)), 'b');
}
{
std::string r ("b");
auto result = parse (parser, r);
BOOST_CHECK (success (result));
auto o = output (result);
BOOST_CHECK (empty (o));
BOOST_CHECK_EQUAL (first (rest (result)), 'b');
}
}
示例2: compare
void compare (Distances distances, Reference const & reference_)
{
auto reference = range::view (reference_);
while (!empty (reference)) {
BOOST_CHECK (!empty (distances));
if (empty (distances))
return;
auto d = chop_in_place (distances);
auto r = chop_in_place (reference);
BOOST_CHECK_EQUAL (first (d), first (r));
BOOST_CHECK_EQUAL (second (d), second (r));
}
BOOST_CHECK (empty (distances));
}
示例3: one_step
static void one_step(size_t li, size_t si, size_t & lo, size_t & so, size_t & offset, range R){
_check_BC <BoundCheck> (N, R.first(),li);
_check_BC <BoundCheck> (N, (R.last()==-1 ? li : R.last()) -1 ,li);
lo = ((R.last()==-1 ? li : R.last()) - R.first() + R.step()-1 )/R.step() ; // python behaviour
so = R.step(); offset = R.first() ;
}