Что такое псевдонимные потоковые буферы? - PullRequest
3 голосов
/ 14 марта 2011

Что такое «потоковые буферы с псевдонимом»?Я встретил этот термин в комментарии к моему ответу .

Ответы [ 3 ]

3 голосов
/ 14 марта 2011

Я никогда раньше не слышал этот термин, но в теме, которую вы цитируете, человек, который использовал это, также привел пример: два потока, которые используйте тот же streambuf. * ​​1001 *

Конечно, только потому, что два потока не используют один и тот же streambuf, не означает, что записанные в них данные не в конечном итоге окажутся в том же месте; что они не псевдоним та же раковина, если это то, что имеется в виду. Есть фильтрация Streambuf, которые направляют фактическое погружение и источники другой streambuf, и на большинстве систем можно открыть файл на системном уровне и подключите потоковый буфер (или два) к это.

- Джеймс Канзе

1 голос
/ 14 марта 2011

Что, вероятно, подразумевалось в комментарии, так это:

ofstream file;
file.rdbuf(cout.rdbuf());

// writes to cout
file << "hello";

Так что теперь проверка там не работает:

if(&file == &cout)
    // no, it doesn't
1 голос
/ 14 марта 2011

Это означает объект с другим именем, например это:

ostream &lbw = cout;

lbw << "Shahid out" << "Sachin in" << endl; //goes to cout!
...