关于语义和性能的几个问题:
x = 0;
While (x < 10) {
std::cout << "Some text here to send to cout";
++x;
}
我正在使用gcc 4.7,流文本是否应该包含在std :: move中?
像这样:
x = 0;
While (x < 10) {
std::cout << std::move("Some text here to send to cout");
++x;
}
虽然我在问,在这样的情况下,将字符串设置为静态更好:
x = 0;
While (x < 10) {
static const char* s = "Some text here to send to cout";
std::cout << s;
++x;
}
答案 0 :(得分:3)
移动一个字符串文字并不会对你有好处:它会在任何情况下产生一个指针,这个指针将按值传递。关于使字符串文字静态,我希望它没有任何区别。
答案 1 :(得分:1)
不,不。 operator<<
const char *
参数是否为rvalue或lvalue没有任何区别:在后一种情况下,标准左值到右值(纯概念)转换将在传递给{之前自动应用{1}}。