【发布时间】:2013-04-06 18:50:53
【问题描述】:
有没有办法删除我所有函数的“plumb”版本,而无需将“hit”行更改为“fixed”?
是的,我的程序运行良好,但我认为是否有办法从这个版本的所有功能中获得乐趣。
请记住,int 在我的程序中并不是真正的int,而是可以是对象(例如container_reference<std::array<double,4>>)或引用(例如std::array<double,4> &)的类型别名
void func(int &&m) { cout << "rvalue: " << m << endl; }
void func(int &m) { cout << "lvalue: "; func(std::move(m)); } // PLUMB!
int main()
{
int a = 5;
func(a); // HIT!
func(std::move(a)); // FIXED!
func(6);
func(a + 5);
}
【问题讨论】:
-
我觉得你并没有真正理解你在做什么。所以问题是你想做什么?你想让你的
func使用右值还是左值? -
我想同时工作。但是body代码是完全一样的。
标签: c++ rvalue-reference lvalue