我在N4268草案中看到了一个名为“未命名左值”的概念,在下面的删除线部分
[注:临时对象、未命名左值和没有链接的命名左值是临时对象,当相应的模板参数具有引用类型时,临时对象不是可接受的模板参数。[示例:.] ]
我已经搜索了很多,但无论是stackoverflow还是谷歌给了我一个答案。我只找到这篇关于价值分类的文章
What are rvalues, lvalues, xvalues, glvalues, and prvalues
但没有用。
我在N4268草案中看到了一个名为“未命名左值”的概念,在下面的删除线部分
[注:临时对象、未命名左值和没有链接的命名左值是临时对象,当相应的模板参数具有引用类型时,临时对象不是可接受的模板参数。[示例:.] ]
我已经搜索了很多,但无论是stackoverflow还是谷歌给了我一个答案。我只找到这篇关于价值分类的文章
What are rvalues, lvalues, xvalues, glvalues, and prvalues
但没有用。
1条答案
按热度按时间7z5jn7bk1#
并非所有左值表达式都有名称。事实上,N4296中的措辞给了我们一些例子:
对于引用或指针类型的非类型模板参数,常量表达式的值不应引用(或对于指针类型,不应是的地址):
此外,cppreference关于值类别的信息详细介绍了左值:
左值是标识非临时对象或非成员函数的表达式。
以下表达式是左值:
然而,这一切都无关紧要,因为变更的范围是提案Allow constant evaluation for all non-type template arguments。