Любой существующий инсертер (если он действительно ужасно глючит) уже делает для создания часового объекта, поэтому, пока вы выполняете свою работу через существующий инсертер, вам не нужно создавать часовой объект самостоятельно.
Вам нужно необходимо создать часовой объект, когда вы самостоятельно записываете данные в буфер потока, без помощи какого-либо существующего средства вставки (т. Е. Когда вы не используете ничего, что 'я создам для вас сторож).
Для этого кода вы можете просто полностью исключить создание сторожевых объектов и сделать что-то вроде:
ostream& myfunction(ostream& os)
{
return os << mydata;
}
Обратите внимание, что существующий код был объявлен возвращаемымostream &
, но, похоже, на самом деле ничего не возвращало.