我不确定一些右值/左值非平凡的例子。
和表达式低于左值还是右值std::vector<int>({1,2,3})[0]
?std::vector<int>()
该代码没有实际用途,但令我惊讶的是该代码是有效的。看起来它们都是左值。或不?
#include <vector>
int main()
{
std::vector<int>({1,2,3})[0] = 0;
std::vector<int>() = {1,2,3};
return 0;
}
进一步的例子...
下面的std::vector<int>()
表达式是一个右值。正确的?以及如何表达std::vector<int>({1,2,3})[0]
?
向量对象 fromstd::vector<int>()
和 int 值 from...[0]
都是临时值。正确的?
auto v = std::vector<int>();
int i = std::vector<int>({1,2,3})[0];