在一个旧的项目代码中有一个如下声明:
cout.operator<<("Hi...");
ostream.operator<<("Hi....");
它认为它可以写成followa,导致相同的输出:
cout << "Hi..";
我试图将这些语句放在main()中。但是编译器给出了错误:
In function 'int main()':
11:3: error: 'ostream' was not declared in this scope
11:3: note: suggested alternative:
In file included from /usr/include/c++/4.9/ios:38:0,
from /usr/include/c++/4.9/ostream:38,
from /usr/include/c++/4.9/iostream:39,
from 2:
/usr/include/c++/4.9/iosfwd:136:33: note: 'std::ostream'
typedef basic_ostream<char> ostream;
我不相信的另一件事是ostream可以直接调用运算符&lt;&lt; 。与 cout 相同,可以直接调用运算符&lt;&lt; 。
如果某个机构可以详细说明或解释如何,那么我将能够调试代码 感谢。
答案 0 :(得分:0)
有问题的代码行实际上可以编译并且可以正常工作,例如:
#include <iostream>
using namespace std;
int main (void)
{
cout << "Hi"; // code line in question
cout << endl;
return 0;
}
引用的错误是由ostream
cout
的类型引起的,该<span *ngIf="inEditMode(r.RuleParentID, a.AttributeID)">
<app-inline-select (selected)="saveToArray($event)" [source]="fetchSourceList(a.AttributeID)" [ruleParentID]="r.RuleParentID" [attributeID]="a.AttributeID"></app-inline-select>
</span>
类型是需要对象(非类型)的地方。
正如评论中所提到的,该错误的修复是使用该类型的对象。这基本上是指第一行引用代码,即上面解决方案代码中的行。