本文整理汇总了C++中BaseType::gptr方法的典型用法代码示例。如果您正苦于以下问题:C++ BaseType::gptr方法的具体用法?C++ BaseType::gptr怎么用?C++ BaseType::gptr使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类BaseType
的用法示例。
在下文中一共展示了BaseType::gptr方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: if
template <typename Iter, typename Traits> NEXTWEB_INLINE typename StreamBuffer<Iter, Traits>::PosType
StreamBuffer<Iter, Traits>::seekoff(typename StreamBuffer<Iter, Traits>::OffType off, std::ios::seekdir dir, std::ios::openmode which) {
if (!(which & std::ios::in)) {
return BAD_POSITION;
}
DistanceType size = std::distance(begin_, end_);
DistanceType dist = static_cast<DistanceType>(off);
DistanceType position = static_cast<DistanceType>(-1);
if ((std::ios::beg == dir) && (dist >= 0) && (dist < size)) {
position = dist;
}
else if ((std::ios::end == dir) && (dist >= 0) && (dist < size)) {
position = size - dist;
}
else if (std::ios::cur == dir) {
position = std::distance(begin_, current_) - static_cast<DistanceType>(egptr() - gptr()) + dist;
if ((position < 0) || (position >= size)) {
return BAD_POSITION;
}
}
if (static_cast<DistanceType>(-1) != position) {
current_ = begin_;
std::advance(current_, position);
fill();
return static_cast<PosType>(position);
}
return BAD_POSITION;
}
示例2: eof
template <typename Iter, typename Traits> NEXTWEB_INLINE typename StreamBuffer<Iter, Traits>::IntType
StreamBuffer<Iter, Traits>::underflow() {
assert(gptr() == egptr());
if (end_ == current_) {
return Traits::eof();
}
return fill();
}
示例3: egptr
template <typename Iter, typename Traits> NEXTWEB_INLINE std::streamsize
StreamBuffer<Iter, Traits>::showmanyc() {
assert(gptr() == egptr());
DistanceType dist = std::distance(current_, end_);
return (0 == dist) ? static_cast<std::streamsize>(-1) : static_cast<std::streamsize>(dist);
}