Я хочу сделать что-то вроде следующего кода:
class foo
{
private:
std::fstream* m_stream;
public:
foo(std::fstream* stream) : m_stream(stream) { }
foo& write(char const* s, std::streamsize count)
{
if (/*condition*/)
{
m_stream->write(s, count);
}
else
{
// ...
}
return *this;
}
foo& read(char* s, std::streamsize count)
{
if (/*condition*/)
{
m_stream->read(s, count);
}
else
{
// ...
}
return *this;
}
};
Мне нужно добавить такое же поведение ко всем аналогичным методам (например, put
). Это должно применяться не только к файловым потокам, но ко всем другим классам потоков. Есть ли какой-нибудь простой способ разрешить эти функции?