我想知道std::forward
在这里是否有意义。
template <class T>
void juju(T && x) {
std::forward<T>(x).jaja();
}
我想这是没有意义的,因为this
在方法调用中总是一个指针,所以它是由右值引用还是左值引用组成的没有区别,但是请证实我的直觉或者解释为什么我错了。
以上示例是此代码的简化方法,其中juju
为for_each
,T
为ExecutionPolicy
,jaja
为get_devices
。
1条答案
按热度按时间htrmnn0y1#
当你在方法中考虑
this
时,你走得太快了。在成员方法被调用之前,有一个重载解析。对于左值和右值引用,可以有不同的重载:Output: