我是一名有用的助手,可以为您翻译文本。
或者我们可以使用一个通用引用:
如果
我希望开发一个带有类型抹除的小型多态类,想知道哪个版本的模板化构造函数更好,应该使用哪个。
我们可以通过值传递:
class A
{
...
template< typename T >
A( T t ) { /* create the underlying model via std::move */ }
...
};
或者我们可以使用一个通用引用:
class A
{
...
template< typename T >
A( T &&t ) { /* create the underlying model via std::forward */ }
...
};
如果
T
不是类本身且该类未被复制,则必须启用通用引用。 有什么想法吗? 对我来说,两个版本看起来都一样。