Я пытался создать универсальный держатель класса потока, но мне кажется, что я не могу передать std::cout
к нему, код:Не удается передать зЬй :: COUT в ostream & конструктор
#include <iostream>
struct x
{
std::ostream &o;
x(std::ostream &o):o(o){}
};
int main()
{
x(std::cout);
x.o<<"Hi\n";
return 0;
}
терпит неудачу при компиляции, как:
c++ str.cc -o str -std=c++11
str.cc: In function ‘int main()’:
str.cc:11:14: error: invalid use of qualified-name ‘std::cout’
str.cc:12:4: error: expected unqualified-id before ‘.’ token
Почему?
вы имели в виду 'х SomeName (Std :: COUT); someName.o << ... '? – Angew
Причина, по которой эта первая строка является ошибкой, должна быть такой же: http://stackoverflow.com/questions/24623071/is-typex-valid. Тем не менее вы не можете использовать 'x', как объект. 'x.o' не имеет смысла, так как' x' является типом. – chris
Как крис указывает на ответ, объясняющий, почему он не работает, но это выглядит как опечатка, как указывает @Angew. –