相关疑难解决方法(0)

获取临时对象的地址

§5.3.1一元运算符,第3节

一元&运算符的结果是指向其操作数的指针.操作数应为左值或限定ID.

在这种情况下,"应该"究竟是什么意思?这是否意味着取一个临时的地址是错误的?我只是想知道,因为g ++只给我一个警告,而comeau拒绝编译以下程序:

#include <string>

int main()
{
    &std::string("test");
}
Run Code Online (Sandbox Code Playgroud)

g ++ 警告:taking address of temporary

comeau 错误:expression must be an lvalue or a function designator

有人有微软编译器或其他编译器,可以测试这个程序吗?提前致谢.

c++ rvalue

25
推荐指数
2
解决办法
2万
查看次数

如何获得对右值的引用?

我已经使用std::movestd::forwardC++中.我的问题是:这些功能如何通过标准库实际实现?

如果左值是你可以获得的地址,而右值绝对不是左值,你怎么能实际实现这些引用呢?

这些新设施是否允许以下​​内容:

auto x = &(3); 
Run Code Online (Sandbox Code Playgroud)

或类似的东西?你能获得一个不仅仅是std::move/ forward返回左值的右值的引用吗?

希望这些问题有意义.我无法在Google上找到有关完美转发的教程,等等.

c++ rvalue-reference c++11

8
推荐指数
2
解决办法
2055
查看次数

标签 统计

c++ ×2

c++11 ×1

rvalue ×1

rvalue-reference ×1