演算子<<を介して入力を受け取り、次のようなカスタムマニピュレーターを受け取った後に監査を書き込む単純な監査クラスを作成しようとしています。
class CAudit
{
public:
//needs to be templated
CAudit& operator << ( LPCSTR data ) {
audittext << data;
return *this;
}
//attempted manipulator
static CAudit& write(CAudit& audit) {
//write contents of audittext to audit and clear it
return audit;
}
private:
std::stringstream audittext;
};
//to be used like
CAudit audit;
audit << "Data " << data << " received at " << time << CAudit::write;
コード内のオーバーロードされた演算子はストリームオブジェクトを返さないことを認識していますが、構文のようなマニピュレーターを使用できるかどうか疑問に思っていました。現在、コンパイラは「<<」をバイナリの右シフト演算子と見なしています。
ご入力いただきありがとうございます、パトリック