Как сделать левый операнд оператора << функцией? - PullRequest
0 голосов
/ 02 января 2012
void operator<< (const Integer& left, const Integer& right)
{
    cout << "\n: " << right.i;
}

можно получить как:

Integer obj;
obj << 5 << 3 << 2;

Штраф:

Но qDebug работает как qdebug() << 2;

Это означает, что левый операнд оператора << является функцией.

Каким должен быть синтаксис определяемой пользователем функции, чтобы я мог написать:
myfunc() << 2;

1 Ответ

5 голосов
/ 02 января 2012

Левый операнд не является функцией, это значение, которое возвращает функция. В частности, qDebug() возвращает экземпляр QDebug, для которого определены около 20 перегрузок <<.

...