マルチスレッドでの安全性を実現するには、別々の操作を特定の順番で行う必要があるユーザー定義型用の入出力操作を、危険領域としてロックする必要があります。この入出力操作の例を次に示します。
| #include <rlocks.h>
#include <iostream.h>
class mystream: public istream {
    // other definitions...
    int getRecord(char* name, int& id, float& gpa);
};
int mystream::getRecord(char* name, int& id, float& gpa)
{
    stream_locker sl(this, stream_locker::lock_now);
    *this >> name;
    *this >> id;
    *this >> gpa;
    return this->fail() == 0;
} |