- iterator[meta header]
- std[meta namespace]
- istreambuf_iterator[meta class]
- function[meta id-type]
bool equal(istreambuf_iterator& b) const; // (1) C++98
bool equal(const istreambuf_iterator& b) const; // (1) C++11他のistreambuf_iteratorオブジェクトと等値比較する
双方がストリームの終端に達していた場合(デフォルト構築した状態は終端とみなせる)、もしくは同じ位置を指していた場合はtrueを返し、そうでなければfalseを返す。
#include <iostream>
#include <iterator>
#include <sstream>
int main()
{
std::stringstream ss;
ss << "123";
std::istreambuf_iterator<char> it1(ss);
std::istreambuf_iterator<char> it2 = it1;
std::istreambuf_iterator<char> last;
if (it1.equal(it2)) {
std::cout << "equal" << std::endl;
}
else {
std::cout << "not equal" << std::endl;
}
++it1;
++it1;
++it1;
if (it1.equal(last)) {
std::cout << "equal" << std::endl;
}
else {
std::cout << "not equal" << std::endl;
}
}- equal[color ff0000]
- std::stringstream[link /reference/sstream/basic_stringstream.md]
equal
equal
- LWG Issue 1126.
istreambuff_iterator::equalneeds a const & parameter- C++11で、引数の型が
istreambuf_iterator&からconst istreambuf_iterator&へ改められた。一時オブジェクトを渡せるようにするため
- C++11で、引数の型が