小编Zha*_*iao的帖子

左值初始化失败

"C++编程语言第4版"中的一些示例代码让我感到困惑.这是我的测试用例.

Env gcc版本4.6.3(Debian 4.6.3-14 + rpi1),其中-std = c ++ 0x

  • Code1 string var {"Cambridge"}; string& r1 {var}; 编译失败
  • Code2 string var {"Cambridge"}; string& r1 = var; 编译成功
  • Code3 string var {"Cambridge"}; string&& r1 {var}; 编译成功
  • Code1编译失败 g++ -g -DLINUX -std=c++0x -c src/dummy.cpp -o src/dummy.o src/dummy.cpp: In function ‘int main(int, char**)’: src/dummy.cpp:26:17: error: invalid initialization of non-const reference of type ‘std::string& {aka std::basic_string<char>&}’ from an rvalue of type ‘<brace-enclosed initializer list>’ make: *** [src/dummy.o] Error 1
  • 根据书籍,Code1应该没问题.第7.7.2节因为var是左值,但为什么code1不起作用,但code3在我的情况下工作?

c++ string gcc c++11

6
推荐指数
1
解决办法
272
查看次数

标签 统计

c++ ×1

c++11 ×1

gcc ×1

string ×1