Я пытаюсь написать простой класс аудита, который принимает ввод через оператор < < и записывает аудит после получения настраиваемого манипулятора следующим образом:
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;
Я понимаю, что перегруженный оператор в моем коде не возвращает объект потока, но задавался вопросом, возможно ли еще использовать синтаксис манипулятора. В настоящее время компилятор видит '< < как двоичный оператор сдвига вправо.
Спасибо за любой вклад, Патрик