请考虑下一堂课。这里需要std::forward
吗?
class Class1
{
public:
using ContainerT = std::map<Key,Value>;
public:
static ContainerT const& vibrometers(){
return vibrometers_(); // std::forward?
}
protected:
static ContainerT & vibrometers_(){
static ContainerT vibrometers__; // no duplicate declaration in cpp
return vibrometers__;
}
}
答案 0 :(得分:2)
forward
是条件移动(如果在<>
中传递的类型是值或右值引用,则移动它。)
在这条线上没有移动ContainerT
的情况。
所以你不应该forward
。
这并不意味着所有条件移动都应该是前锋,但很少有条件移动不应该是前锋。