raw_storage_iterator::operator*
間接取值運算子用於實作未經處理的儲存區 Iterator 運算式*ii = x。
raw_storage_iterator<ForwardIterator, Type>& operator*( );
傳回值
在未經處理的儲存區的 Iterator 之參考。
備註
ForwardIterator 的需求是未經處理的儲存區 Iterator 所必須滿足只需要運算式*ii t =有效,而且沒有任何本身沒有相關的說明 operator 或 operator= 。 這個實作的成員運算子傳回 *this,因此, operator=(const[型別]_&;RYAN) 在運算式可以執行這個實際存放區,例如*_Ptr = _Val。
範例
// raw_storage_iterator_op_deref.cpp
// compile with: /EHsc
#include <iostream>
#include <iterator>
#include <memory>
#include <list>
using namespace std;
class Int
{
public:
Int(int i)
{
cout << "Constructing " << i << endl;
x = i;
bIsConstructed = true;
};
Int &operator=(int i)
{
if (!bIsConstructed)
cout << "Not constructed.\n";
cout << "Copying " << i << endl;
x = i;
return *this;
};
int x;
private:
bool bIsConstructed;
};
int main( void)
{
Int *pInt = ( Int* ) malloc( sizeof( Int ) );
memset( pInt, 0, sizeof( Int ) ); // Set bIsConstructed to false;
*pInt = 5;
raw_storage_iterator< Int*, Int > it( pInt );
*it = 5;
}
需求
標題: <memory>
命名空間: std