当c ++编译器为引用和指针生成非常相似的汇编代码时,为什么使用引用优先(并且认为比指针更安全)?
我确实看到了
编辑-1:
我正在查看g ++为这个小程序生成的汇编程序代码:
int main(int argc, char* argv[])
{
int a;
int &ra = a;
int *pa = &a;
}
Run Code Online (Sandbox Code Playgroud) 我正在使用一个意味着像这样使用的类:
Output() << "Hello.\n";
Run Code Online (Sandbox Code Playgroud)
在operator<<我的明确使用中std::cout,但我希望有一个静态类成员解析为`std :: cout'所以我可以做这样的事情:
copy(some_string_set.begin(), some_string_set.end(), ostream_iterator<string>(Output::m_stream, ", "));
Run Code Online (Sandbox Code Playgroud)
或类似的东西(我不能修复底线,直到我修复静态数据成员.
我甚至尝试过auto,但GCC扔了一个
错误:'std :: cout'不能出现在常量表达式中
对我.我怎么能做我想做的事?(关键是不必std::cout全部通过我的代码,但所有输出都通过Output类)